我正在努力创建一个使用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);
答案 0 :(得分:8)
当我发布这个时,上帝知道我在哪里。以为我会发布答案来整理。
我遗失的代码如下: -
Criterion child = Restrictions.eq("childAlias.childName", "Albert");
criteria.createAlias("children", "childAlias", CriteriaSpecification.INNER_JOIN);
criteria.add(child);