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

jas*_*ace 8 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);
Run Code Online (Sandbox Code Playgroud)

jas*_*ace 8

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

我遗失的代码如下: -

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