The Order By API of hibernate criteria is used to display the results either in ascending or descending order. Suppose you have to write query like
SELECT * FROM Student ORDER BY roll_no DESC;
The same query can be written in hibernate as follows
Criteria criteria = session.createCriteria(Student.class); criteria.add(Restrictions.lt("rollNo", 10)); criteria.addOrder(Order.desc("rollNo")); List list = criteria.list();
An Example of Criteria order by is given below
OrderByExample.java
package net.roseindia.main; import java.util.Iterator; import java.util.List; import net.roseindia.bean.Student; import net.roseindia.util.HibernateUtil; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; public class OrderByExample { @SuppressWarnings("unchecked") public static void main(String[] args) { Session session = HibernateUtil.getSessionFactory().openSession(); Object object; try { // Creating a Criteria instance Criteria criteria = session.createCriteria(Student.class); criteria.add(Restrictions.lt("rollNo", 10)); criteria.addOrder(Order.desc("rollNo")); List list = criteria.list(); Iterator itr = list.iterator(); System.out.println("\n"); System.out.println("Student Details :- \n"); System.out.println("\tRoll No"+"\t"+"Name"+"\t"+ "Course"+"\t"+ "Address\n"); if (list.size() == 0) { System.out.println("No Result Found !"); } while (itr.hasNext()) { object = (Object) itr.next(); System.out.printf("\t"); System.out.println(((Student) object).getRollNo()+"\t"+ ((Student) object).getName()+"\t"+ ((Student) object).getCourse()+"\t"+ ((Student) object).getAddress()); } } catch (HibernateException e) { e.printStackTrace(); } finally { session.close(); } } }
Hibernate: select this_.roll_no as roll1_0_0_,
this_.name as name0_0_, this_.course as course0_0_, this_.address as
address0_0_ from student this_ where this_.roll_no<? order by
this_.roll_no desc Student Details In descending Order :- Roll No Name Course Address 4 Mahesh MCA Amritsar 3 Aman BCA Gorakhpur 2 Raman B.Tec Lucknow 1 John MCA Delhi Hibernate: select this_.roll_no as roll1_0_0_, this_.name as name0_0_, this_.course as course0_0_, this_.address as address0_0_ from student this_ where this_.roll_no<? order by this_.roll_no desc, this_.roll_no asc Student Details In Ascending Order :- Roll No Name Course Address 4 Mahesh MCA Amritsar 3 Aman BCA Gorakhpur 2 Raman B.Tec Lucknow 1 John MCA Delhi |
Advertisements
Ads
Ads