【问题标题】:Hibernate Subquery and DetachedCriteriaHibernate 子查询和 DetachedCriteria
【发布时间】:2010-05-07 09:04:25
【问题描述】:

我创建了一个 DetachedCriteria,它正在检索 isApprovedisPublished 设置为 true 的庄园。是这样定义的:

DetachedCriteria activePublishedCriteria = DetachedCriteria.forClass(Estate.class)
    .add(Restrictions.eq("isApproved", true))
    .add(Restrictions.eq("isPublished", true))
    .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

我想在某些查询中重复使用此条件。在这种情况下,我想将 isApprovedisPublished 限制替换为 DetachedCriteria

Criteria criteria = getSession().createCriteria(Estate.class)
       .createAlias("city", "c")
       .add(Restrictions.eq("c.id", cityID))
       // the following 2 lines should use the DetachedCriteria 
       .add(Restrictions.eq("isApproved", true))
       .add(Restrictions.eq("isPublished", true))
       .setProjection(Projections.rowCount());
  return (Integer) criteria.list().get(0);

有没有办法做到这一点?尝试使用

.add(Subqueries.geAll(....

但无法使其正常工作。我在 Hibernate 中找不到有关子查询的适当文档。欢迎提示。

【问题讨论】:

    标签: hibernate detachedcriteria subquery


    【解决方案1】:

    这应该可行:

    .add(Subqueries.geAll(value, detachedCriteria))

    【讨论】:

    • 嗨,谢谢。我检查了这个,但我的想法是定义一个可重用的 DetachedCriteria。所以第二个标准应该能够使用它自己的限制 + DetachedCriteria 中定义的限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    相关资源
    最近更新 更多