【问题标题】:When using setFetchMode in Hiberate criteria how do I set a restriction on the oneToMany table在休眠条件中使用 setFetchMode 时,如何对 oneToMany 表设置限制
【发布时间】:2011-04-06 19:50:48
【问题描述】:

我正在努力创建一个使用 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);

【问题讨论】:

    标签: hibernate criteria


    【解决方案1】:

    天知道我发这个的时候我在哪里。以为我会发布答案以进行整理。

    我缺少的代码如下:-

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

    【讨论】:

    猜你喜欢
    • 2014-09-17
    • 2018-11-17
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多