Hibernate Подзапрос и Отдельные Критерии - PullRequest
4 голосов
/ 07 мая 2010

Я создал 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);

Я хотел бы повторно использовать этот критерий в некоторых запросах. В этом случае я хотел бы заменить ограничения isApproved и isPublished на 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. Советы приветствуются.

1 Ответ

2 голосов
/ 14 мая 2010

Это должно работать:

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

...