Hibernate Group by Criteria Object

前端 未结 4 795
一整个雨季
一整个雨季 2020-11-29 02:42

I would like to implement the following SQL query with Hibernate Criteria:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_n         


        
4条回答
  •  执笔经年
    2020-11-29 03:32

    GroupBy using in Hibernate

    This is the resulting code

    public Map getStateCounts(final Collection ids) {
        HibernateSession hibernateSession = new HibernateSession();
        Session session = hibernateSession.getSession();
        Criteria criteria = session.createCriteria(DownloadRequestEntity.class)
                .add(Restrictions.in("id", ids));
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.groupProperty("state"));
        projectionList.add(Projections.rowCount());
        criteria.setProjection(projectionList);
        List results = criteria.list();
        Map stateMap = new HashMap();
        for (Object[] obj : results) {
            DownloadState downloadState = (DownloadState) obj[0];
            stateMap.put(downloadState.getDescription().toLowerCase() (Integer) obj[1]);
        }
        hibernateSession.closeSession();
        return stateMap;
    }
    

提交回复
热议问题