Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate子查询和DetachedCriteria_Hibernate_Detachedcriteria_Subquery - Fatal编程技术网

Hibernate子查询和DetachedCriteria

Hibernate子查询和DetachedCriteria,hibernate,detachedcriteria,subquery,Hibernate,Detachedcriteria,Subquery,我已经创建了一个DetachedCriteria,用于检索已批准且已发布设置为true的地产。其定义如下: DetachedCriteria activePublishedCriteria = DetachedCriteria.forClass(Estate.class) .add(Restrictions.eq("isApproved", true)) .add(Restrictions.eq("isPublished", true)) .setResultTransf

我已经创建了一个DetachedCriteria,用于检索已批准已发布设置为true的地产。其定义如下:

DetachedCriteria activePublishedCriteria = DetachedCriteria.forClass(Estate.class)
    .add(Restrictions.eq("isApproved", true))
    .add(Restrictions.eq("isPublished", true))
    .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
我想在一些查询中重用这个条件。在这种情况下,我想用分离的标准替换已批准的已发布的限制

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中找不到关于子查询的适当文档。欢迎提供提示。

这应该可以:


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

您好,谢谢。我检查了这一点,但我的想法是定义一个可重用的DetachedCriteria。因此,第二个标准应该能够使用其自身的限制+DetachedCriteria中定义的限制。