我创建了一个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和isPublished限制
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))