2010-08-31 55 views
0

我檢索集合屬性我想用標準如何使用標準阿比

public class A { 
     private Collection<B> property 
     // getters and setters 
    } 
    public class B { 
     private int status 
     // getters and setters 
    } 

我的標準代碼如下檢索集合屬性:

Criteria cr = getSession().createCriteria(A.class)  
cr.createAlias("property", "prop") 
cr.add(Restrictions.eq("prop.status", status)); 
cr.setProjection(Projections.property("prop")); 
cr.list(); 

很顯然這個代碼不我只想展示我的意圖。我知道如何使用HQL來實現這一點,但我必須使用Criteria API。我甚至有可能使用Criteria的目標是什麼?

回答

0

不幸的是,我想要達到的是不可能與Hibernate標準。如果有人需要這樣的東西,你應該創建一個namedQuery,就像你對你的awfull一樣,或者只是使用hql。

Peter

0

此解決方案有什麼問題?

Criteria cr = getSession().createCriteria(B.class); 
cr.add(Restrictions.eq("status", status)); 
cr.list(); 
+0

我需要A.property集合,不僅僅是DB中的所有B實例都具有一定的狀態。我需要將所有B連接到A並提供狀態。不幸的是B沒有提及A(我不會問這個問題,如果是這樣的話),只需要A 0 .. * B連接 Regards, Peter – pmanolov 2010-08-31 11:25:12