我試圖在Hibernate中使用'distinct'HQL子句執行一個查詢並獲得一個List。但是,無論何時使用'ditinct',我都會得到一個java對象列表,而不是使用'distinct'返回的POJO。有沒有一種很好的方式來獲得pojos而不是物體?如何在Hibernate中使用不同的HQL來獲取POJO列表?
例子返回預期的POJO的列表:
class myPojos() { ... (has some properties/fields) propOne, propTwo, propThree ...}
裏面一個DAO
Session s = HibernateUtil.currentSession();
List<myPojos> myPojoList = s
.createQuery("select from " getPojoClass().getName())
.list();
然而,加入了 '明顯的' 條款
List<myPojos> myPojoList = s
.createQuery("select distcinct mpl.propOne, mpl.propTwo, mpl.propThree from " + getPojoClass().getName() + "mpl")
.list();
...相反返回一個對象列表。所以,我放棄了myPojos類的所有getter和setter以及鬆散的類型安全。
有沒有辦法做到這一點,並得到一個列表retatin getters/setteres & type-saftey?
是HQL必須的嗎?檢查這裏(類似的NHibernate問題):http://stackoverflow.com/questions/318157/get-distinct-result-set-from-nhibernate-using-criteria-api – 2012-07-06 21:27:39