我创建了一个DetachedCriteria,用于检索将isApproved和isPublished设置为true的资产。它是这样定义的:

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


我想在某些查询中重用此标准。在这种情况下,我想用DetachedCriteria替换isApproved和isPublish限制

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(Subqueries.geAll(value, detachedCriteria))

关于hibernate - hibernate 子查询和DetachedCriteria,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2787371/

10-11 01:28