Select distinct entities by specific column

与世无争的帅哥 提交于 2019-12-07 15:56:00

问题


I have a table with 4 columns : id, column_a and column_b

My initial query is basicaly

Session session = initialize my hibernate session;
Criteria criteria = session.createCriteria(MytableBean.class);
// add some constraints
return criteria.list()

And it returns some results like :

id  |  column_a  | column_b | 
1   |  A         | 1        | 
2   |  A         | 1        | 
3   |  A         | 2        | 
4   |  B         | 3        | 
5   |  B         | 3        | 

But I don't want to get several times the same couple (column_a, column_b), even if I need to have it many times in my database.

So, I'm looking for a query which returns a result similar to:

id  |  column_a  | column_b | 
    |  A         | 1        | 
    |  A         | 2        | 
    |  B         | 3        | 

In sql I would use SELECT DISTINCT column_a, column_b FROM ....

But I can't use sql (and either don't want to use hql, as far as possible).


回答1:


The following will accomplish this. A list of Object[] will be returned.

    Criteria criteria = session.createCriteria(MytableBean.class);
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.property("column_a"));
    projList.add(Projections.property("column_b"));
    projList.add(Projections.groupProperty("column_a"));
    projList.add(Projections.groupProperty("column_b"));

    criteria.setProjection(projList);
    return criteria.list();


来源:https://stackoverflow.com/questions/8354704/select-distinct-entities-by-specific-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!