
How to calculate sum() in hibernate criteria by using projection?

You can calculate sum of any numeric value in hibernate criteria by using projection. Projection is an interface and a class in ?org.hibernate.criterion?. For using Projection object in our Criteria, we have to call setProjection method.
Here is an example:
package net.roseindia.projection;
import java.util.*;
import net.roseindia.table.Employee;
import net.roseindia.util.HibernateUtil;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Projections;
public class SumProjection{
public static void main(String[] args) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria=session.createCriteria(Employee.class);
criteria.setProjection(Projections.sum("salary"));
List employeeList = (List)criteria.list();
for(Object employee: employeeList){
System.out.println(employee);
}
}
}
Output:
Hibernate: select sum(this_.salary) as y0_ from employee this_ 275000
Description: Here we are calculating sum of all employee salary by using
criteria.setProjection(Projections.sum("salary"));
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.