我正在努力创建一个 Hibernate 条件查询,它使用 setFetchMode(... SELECT) 并对返回的子记录进行限制。如果我按照推荐使用 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);
最佳答案
天知道我发这个贴的时候在哪。以为我会发布答案来整理。
我缺少的代码如下:-
Criterion child = Restrictions.eq("childAlias.childName", "Albert");
criteria.createAlias("children", "childAlias", CriteriaSpecification.INNER_JOIN);
criteria.add(child);
关于hibernate - 在 Hibernate 标准中使用 setFetchMode 时,如何对 oneToMany 表设置限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5572161/