在Hibernate条件中使用setFetchMode时,如何在oneToMany表上设置限制

时间:2011-04-06 19:50:49

标签: hibernate criteria

我正在努力创建一个使用setFetchMode(... SELECT)的Hibernate条件查询,并对返回的子记录设置限制。如果我按照建议使用creteAlias,它会产生一个内部连接,从而使得准确的分页几乎不可能。

代码如下: -

Criteria criteria = this.getSession().createCriteria(Mother.class);
criteria.addOrder(Order.asc("title"))
// .createAlias("children", "childrenAlias") had to remove
.add(Restrictions.eq("childAge", "5")) // how do I reference childAge?
.setMaxResults(details.getMaxRows())
.setFirstResult(details.getStart())
.setFetchMode("children", FetchMode.SELECT);

1 个答案:

答案 0 :(得分:8)

当我发布这个时,上帝知道我在哪里。以为我会发布答案来整理。

我遗失的代码如下: -

Criterion child = Restrictions.eq("childAlias.childName", "Albert");
criteria.createAlias("children", "childAlias", CriteriaSpecification.INNER_JOIN);
criteria.add(child);