Hibernate Count
In this section you will learn different way to count number of records in a table.
Hibernate Count Query:
count() function returns the number of rows in the table. In hibernate there is many ways to count the number of records of table.
We can count all the rows as well as the distinct records.
count by using sql native: Here is simple SQL query to count the number of employees in the employee table. * counts all records.
package net.roseindia.main; import net.roseindia.util.HibernateUtil; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; public class HibernateCount { public static void main(String[] args) { SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); String sql = "Select count(*) FROM employee"; Query countQuery = session.createSQLQuery(sql); System.out.println("Number of Employee: " + countQuery.list().get(0)); } }
Output:
Hibernate: Select count(*) FROM employee Number of Employee : 5
You can also count distinct value in a table under any field. Here is query which count the distinct record of salary.
String sql = "Select count(distinct salary) FROM employee";
count by using HQL :You can also count the record by using HQL. Query is given below :
String countHql = "Select count(distinct salary) FROM Employee emp"; Query countQuery = session.createQuery(countHql);
count by using criteria-projection: You can also use criteria-projection to count the number of rows in the table. rowCount() function returns the number of rows of table.
Criteria criteria=session.createCriteria(Employee.class); criteria.setProjection(Projections.rowCount());