[英]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.