我试图在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