Hibernate Criteria限制在不同类中的列表中的对象

时间:2016-01-26 19:57:05

标签: java hibernate

我有2个具有以下关联的类:

public class Entry {
    private Long id;
    private String poNumber;
    private List<Comment> comments;
}

public class Comment{
    private Long id;
    private Reason reason;
}

我使用Hibernate标准对Entry对象列表设置限制:

 Criteria criteria = ((HibernateEntityManager) entityManager).getSession().createCriteria(Entry.class, "entry");

我有一个搜索表单,它提供了对象列表。为了限制&#34; poNumber&#34;,给定List<String> poNumbers我这样做:

criteria.add(Restrictions.in("poNumber", poNumbers));

但在给定List<Reason> reasons时,我不知道如何限制理由。我正在限制同一个Criteria对象(即类Entry)。

(与Fetching objects of class B stored in a list inside class A with Hibernate Criteria相关)

1 个答案:

答案 0 :(得分:1)

这仍将返回类Entry的对象:

criteria.createAlias("comments", "comment")
.add(Restrictions.in("comment.reason", reasons));