繁体   English   中英

如何在休眠中获取具有不同HQL的POJO列表?

[英]How toget a list of POJOs with distinct HQL in hibernate?

我试图在休眠状态下使用'distinct'HQL子句执行查询并获取列表。 但是,每当我使用'ditinct'时,我都会得到一个Java对象列表,而不是不使用'distinct'返回的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();

但是,添加“ distinct”子句

List<myPojos> myPojoList = s
                .createQuery( "select distcinct mpl.propOne, mpl.propTwo, mpl.propThree from " + getPojoClass().getName() + "mpl" )
                .list();

...而是返回对象列表。 因此,我松开了myPojos类的所有getter和setter和松散的类型安全。

有没有办法做到这一点,并获得一个列表以获取retatin getter / setteres和type-saftey?

您可以使用以下方法: select p from Pojo p where p.id in (select distinct id from Pojo) 您正在子查询中执行非重复操作,仅将已经唯一选择的ID的选择交给主查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM