Hibernate Criteria Projection

In this tutorial we are going to discuss about Hibernate Criteria Projection with example.

Hibernate Criteria Projection

Hibernate Criteria Projection

In this tutorial we are going to discuss about Hibernate Criteria Projection with example.

Hibernate Criteria Projection :

General meaning of projection is to retrieve and in SQL its meaning is to 'Select'.
For Projection import class org.hibernate.criterion.Projections.It works as factory for Projection instances.
For applying projection to the query , call setProjection() method  .

setProjection() : it is used to apply projection to the query.

Example : In this example we are using projection to find out the maximum roll number and the minimum roll number of student.

Here is main class code -

package net.roseindia.main;

import net.roseindia.table.Student;
import net.roseindia.util.HibernateUtil;
import java.util.*;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;

public class HibernateProjections {

public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(Student.class);
try {
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.max("roll"));
projectionList.add(Projections.min("roll"));
criteria.setProjection(projectionList);
List<Object> list = criteria.list();
Iterator iterator = list.iterator();

while (iterator.hasNext()) {
Object[] obj = (Object[]) iterator.next();
System.out.println("Maximum Roll number: " + obj[0]);
System.out.println("Minimum Roll number: " + obj[1]);
}
} catch (HibernateException e) {

e.printStackTrace();
} finally {
session.close();
}
}
}

Output :

Hibernate: select max(this_.roll_no) as y0_, min(this_.roll_no) as y1_ from student this_
Maximum Roll number: 9
Minimum Roll number: 1

Click here to download complete source code