我有一个实体Book
,其中包含Author
个实体的列表。
Book
多对多 Author
图书实体
public class Book{
...
@ManyToMany
@JoinTable(name="BookAuthor",
joinColumns={@JoinColumn(name="bookId")},
inverseJoinColumns={@JoinColumn(name="authorId")})
private List<Author> authors;
...
}
注意:作者实体中没有从作者向图书的向后引用。
我试图获取所有具有确切作者名单的书。
这是我到目前为止提出的:-
public List<Book> getBooksFromAuthors(List<Author> authors) {
TypedQuery<Book> bookTypedQuery = entityManager.createQuery("SELECT b FROM Book b where b.authors = :authors", Book.class)
.setParameter("authors", authors);
return bookTypedQuery.getResultList(); // Error at this line
}
这会导致错误:-
org.hibernate.exception.SQLGrammarException:无法提取 结果集
我应该如何修改查询以获得所需的结果?