Hibernate Pagination
In this tutorial we will discuss concept of pagination in hibernate.
Pagination in Hibernate :
Pagination is used where you have to display large amount of result. It is
tough to display all the record into a single page.
For convenient and better display hibernate provides concept of pagination. In
pagination large result set is divided into a number of pages and at a time you
can fetch one page.
For this, just set start position and page size. Use "order by" clause to sort
result dataset.
Code :
String hql = "SELECT stud.roll, stud.name, stud.course FROM Student stud"; Query query = session.createQuery(hql); query.setFirstResult(start); query.setMaxResults(end);
setFirstResult(int arg0) : sets the starting point of your
table record. It is contained in Query org.hibernate.Query.setFirstResult(int
arg0)
It takes one int type argument.
setMaxResults(): sets the maximum result into your single
page. It is defined in Query org.hibernate.Query.setFirstResult(int arg0).
It takes one int type argument.
Example : Here we are selecting record of student and displaying it by using pagination concept.
main class code :
package net.roseindia.main; import java.util.Iterator; import java.util.List; import java.util.Map; import net.roseindia.table.Student; import net.roseindia.util.HibernateUtil; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; public class MainClazz { public static void main(String[] args) { Session session = HibernateUtil.getSessionFactory().openSession(); int start = 0; int end = 5; String hql = "SELECT stud.roll, stud.name, stud.course FROM Student stud order by stud.roll"; Query query = session.createQuery(hql); query.setFirstResult(start); query.setMaxResults(end); query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); List objectList = query.list(); Iterator iterator = objectList.iterator(); System.out.println("RollNo.\t Name \t Course"); while (iterator.hasNext()) { Map map = (Map) iterator.next(); System.out.print(map.get("0")); System.out.print("\t" + map.get("1")); System.out.print("\t" + map.get("2")); System.out.println(); } session.close(); // session is closed } }
Output :
Hibernate: select student0_.roll_no as col_0_0_, student0_.name as col_1_0_, student0_.course as col_2_0_ from student student0_ limit ? RollNo. Name Course 1 Rondy java 3 Johny unix 4 Roxi Hibernate 5 Johny Hibernate 6 johny C