通过嵌套实体列表查询实体

时间:2019-01-02 11:15:47

标签: java spring hibernate jpa

我有一个实体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:无法提取   结果集

我应该如何修改查询以获得所需的结果?

0 个答案:

没有答案