2012-10-30 25 views
2

我有兩個類Hibernate的標準API - 如何得到一個對象的列表屬性

class House { 
    String id 
    Long size 
    Resident resident 
} 

class Resident { 
    String id 
    String name 
} 

我想要什麼,是居民的名單,但我需要衆議院一些限制。 E.q.在尺寸e.q. > 20並將結果限制爲10

居民沒有提及衆議院。

我真的不知道如何繼續下去。

我嘗試這樣做:

Criteria crit = session.createCriteria(House.class); 
crit.add(Expression.ge("size", 20)); 
crit.setMaxResults(10); 
crit.addOrder(Order.desc("size")); 
return crit.list(); 

但我不知道怎麼去駐地

回答

3

嘗試下面的代碼:

Criteria crit = session.createCriteria(House.class); 
crit.add(Expression.ge("size", 20)); 
crit.setMaxResults(10); 
crit.addOrder(Order.desc("size")); 
crit.setFetchMode("resident", FetchMode.JOIN); 
crit.setProjection(Projections.property("resident")); 
return crit.list(); 
2

連接「居民有房子沒有引用」 - AFAIK Hibernate的標準不能創建限制在沒有關聯的情況下,來自給定條目的另一條目。

因此,您無法爲Resident.class創建Criteria並在該處添加Restriction

你可以嘗試什麼是你House.class創建Criteria,添加所需Restriction s,然後設置一個Projection拿出你Resident.class實例。

你到目前爲止嘗試過什麼?

+1

@RAS還跟使用您的更新上面的方法和細節(http://stackoverflow.com/a/13135907/53444)提供一個工作示例]題。 – Tim

相關問題