基于集内容的HQL查询

时间:2011-03-28 14:07:45

标签: hibernate hql

我有一个带有set:

的hi​​bernate托管POJO
public class Book {
    private Set<Page> pages;
    public Set<Page> getPages() { return pages; }
    public void setPages(Set<Page> pages) { this.pages = pages; }
}
public class Page {
    private int pageNumber;
    public int getPageNumber() { return pageNumber; }
    public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber;
}

如何根据页码编写HQL查询?例如,返回pageNumber大于100的所有图书?

以下不起作用:

from Book where pages.pageNumber > 100

2 个答案:

答案 0 :(得分:0)

使用join

select distinct b from Book b join b.pages p where p.pageNumber > 100

如果没有distinct,则会为满足条件的每个页面返回单独的Book实例。

另见:

答案 1 :(得分:0)

使用隐式连接

  

来自Book b,其中b.pages.pageNumber&gt;   100

这个更容易