The example below show how to get total row count using the Projections.rowCount()
. The result of this query will be a single object of Integer
that contains the result of executing an SQL select count (*) command.
package org.kodejava.hibernate;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.HibernateException;
import org.hibernate.Criteria;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Projections;
import org.kodejava.hibernate.model.Track;
import java.util.List;
public class ProjectionsCountDemo {
public static Session getSession() throws HibernateException {
String cfg = "hibernate.cfg.xml";
SessionFactory sessionFactory = new Configuration().configure(cfg)
.buildSessionFactory();
return sessionFactory.openSession();
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
try (Session session = getSession()) {
Criteria criteria = session.createCriteria(Track.class)
.setProjection(Projections.rowCount());
List<?> result = criteria.list();
if (!result.isEmpty()) {
Long rowCount = (Long) result.get(0);
System.out.println("Total records: " + rowCount);
}
}
}
}
Maven Dependencies
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.6.9.Final</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
Latest posts by Wayan (see all)
- How do I compile and execute a JDK preview features with Maven? - December 8, 2023
- How do I sum object property using Stream API? - December 7, 2023
- How do I iterate through date range in Java? - October 5, 2023
Hi,
Is there any other neat method?
session.createCriteria()
is deprecated, so I have some concerns using it.Hi Dybuk,
You can use the JPA Criteria API as the replacement for the deprecated Hibernate API.
List result = criteria.list();
is not the correct way.Instead, use as following.
Long rowCount = (Long) criteria.uniqueResult();
PS: Not related to this post
Hi,
There is a “Views: 8,799” on this page, could you point me to an article which has some information on how to manage views on a UI screen, if you already have one or provide some information on how it could be done.
Thanks