【发布时间】:2012-07-07 08:34:37
【问题描述】:
我正在尝试在 hibernate 中使用“distinct”HQL 子句执行查询并获取一个列表。但是,每当我使用“ditinct”时,我都会得到一个 java 对象列表,而不是在不使用“distinct”的情况下返回的 POJO。有没有获得 pojos 而不是对象的好方法?
按预期返回 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();
但是,添加一个'distinct'子句
List<myPojos> myPojoList = s
.createQuery( "select distcinct mpl.propOne, mpl.propTwo, mpl.propThree from " + getPojoClass().getName() + "mpl" )
.list();
...而不是返回一个对象列表。因此,我释放了 myPojos 类的所有 getter 和 setter,并释放了 type-safetey。
有没有办法做到这一点并获得一个列表来重新定义 getter/setteres 和 type-safey?
【问题讨论】:
-
HQL 是必须的吗?在这里检查(类似的 NHibernate 问题):stackoverflow.com/questions/318157/…
标签: java hibernate hql distinct type-safety