2010-05-07 66 views
4

我創建了一個DetachedCriteria之後被檢索莊園已經在isApproved|評論設置爲真正。它是這樣定義的:Hibernate的子查詢和DetachedCriteria之後

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

我想在一些查詢中重用這個標準。在這種情況下,我想更換isApproved|評論限制用的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的子查詢中找不到合適的文檔。歡迎提示。

回答

2

這應該工作:

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

+0

HI,THX。我檢查了這一點,但我的想法是定義一個可重用的DetachedCriteria。所以第二個標準應該能夠使用自己的限制+在DetachedCriteria中定義的限制。 – dawez 2010-05-16 07:59:52