簡體   English   中英

JPQL SELECT,其中每個左表條目存在多個 n:m

[英]JPQL SELECT where more than one n:m per left-table entry exists

我做了一個 JPA n:m 結構,其中 books(id, name) 和 authors(id, lastname) 有一個:m 關系與一個自制表 (bookAuthors) 之間有 (book.id, authors.id) 作為組合峰。

現在我想做一個 JPQL 查詢,其中將返回所有作者超過一位的書籍。

我嘗試了幾個 SELECT,但沒有一個起作用。 所以你知道如何 JPQL-SELECT auch 查詢嗎?

提前致謝

如果您正確配置了您的實體,我認為您的實體如下所示:

書.java

...
public class Book {
    
    @Id
    ... other related annotation
    private Long bookId;

    // other related properties like title, publishedAt, numberOfPages etc
    
    @ManyToMany(...)
    private List<Author> authors;    
}

作者.java

...
public class Author {
    
    @Id
    ... other related annotation
    private Long authorId;

    ... other related properties name, gender, age etc.

    @ManyToMany(...)
    private List<Book> books;
}

那么你的BookRepository.java應該包含如下的方法

BookRepository.java

@Repository
public interface BookRepository extends JPARepository<Book, Long> {
    
    @Query("SELECT book FROM Book book"
           + " WHERE SIZE(book.authors) > 1")
    public List<Book> bookWithMultipleAuthor();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM