Hibernate使用Projections进行聚合操作

在JDBC中,就使用SQL的sum等方法,而在使用Hibernate中,需要使用org.hibernate.criterion.Projections对象. 

 

Criteria criteria = session.createCriteria(User.class);

criteria.add(Restrictions.eq("depart", "depart1"));

criteria.setProjection(Projections.count("id"));

Long count = (Long)criteria.uniqueResult();

 

查询depart1部门的人数, 这种方式要比list再去取size好一些

 

Projections的一些其他聚合函数:distinct, rowCount, avg, min, max, sum等

你可能感兴趣的:(Hibernate)