如何在HQL中为一对多映射创建查询

时间:2018-07-24 06:31:56

标签: hibernate hql one-to-many jpql

我有两个如下实体

public class Author{

   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = 
      "author")
   @Fetch(FetchMode.SUBSELECT)
   private Set<Book> books;
}

public class Book{
    @ManyToOne
    @JoinColumn(name = "AUTHOR_ID_REF", nullable = false)
    private Author author;

    private String bookCategory;

    private String bookName
}

在此表中,我希望获取所有作者,除非Book表中有bookCategory ='Comic'AND bookName ='SuperKid'的作者行。 如果bookCategory和bookName匹配,则我不应该得到作者。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用:

SELECT author FROM Author author
JOIN author.books book
WHERE book.bookCategory <> 'Comic' AND book.bookName <> 'SuperKid'