Hibernate Criteria儿童限制

时间:2013-11-06 15:13:36

标签: hibernate

我有一个审查父对象列表的标准

标准条件= session.createCriteria(Parent.class,“parent”)

但我需要在子对象列表中添加限制,因为 我不需要所有的子对象

请帮忙

2 个答案:

答案 0 :(得分:1)

不知道您想要添加的限制的具体细节,它将在您自己的"yourRestriction"限制中替代。

在当前形式中,这将在someColumn表的parent列中查找等于字符串"yourRestriction"的值。

Criterion restriction = Restrictions.eq("parent.someColumn", "yourRestriction");
criteria.add(restriction);

更多信息:

编辑:对子集合创建限制:

// Give the child collection an alias
criteria.createAlias("childCollectionNameInParentClass", "childCollectionAlias");

// Create the restriction on the child collection's column
Criterion restriction = Restrictions.eq("childCollectionAlias.someColumn", "someRestriction");

答案 1 :(得分:1)

还有另一种方法可以做到这一点:

criteria.setFetchMode("someColumn", FetchMode.EAGER);//It is deprecated but it works fine
Criteria criteriaChildField = criteria
                    .createCriteria("someColumn");

criteriaChildField.add(Restrictions.eq("restrictionAttribut", YOUR_RESTRICTION));

希望这有帮助。