Hibernate Expression
In this section we will discuss Hibernate Expression.
Hibernate Expression :
Expression is used by applications as a framework for creating new kind of
criterion.
It is deprecated and you can use Restrictions in place of Expression. Expression
class is defined in org.hibernate.criterion.Expression.
In general Expression is used for normal operation as eq, gt, lt, or, and etc. It
provides to combine more than one conditions in to single expression.
Example :
In this example we are displaying record of such students whose roll number is greater than 5 or name starts with 'J' character.
package net.roseindia.application; import java.util.Iterator; import java.util.List; import net.roseindia.table.Student; import net.roseindia.util.HibernateUtil; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Expression; public class HibernateExpression { public static void main(String[] args) { SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); Criteria criteria = session.createCriteria(Student.class); criteria.add(Expression.or(Expression.gt("roll", 5), Expression.like( "name", "j%"))); List<Student> list = criteria.list(); Iterator iterator = list.iterator(); System.out.println("RollNo.\tName\tCourse"); while (iterator.hasNext()) { Student student = (Student) iterator.next(); System.out.print(student.getRoll()); System.out.print("\t" + student.getName()); System.out.print("\t" + student.getCourse()); System.out.println(); } } }
Output :
Hibernate: select this_.roll_no as roll1_0_0_, this_.course as course0_0_, this_.name as name0_0_ from student this_ where (this_.roll_no>? or this_.name like ?) RollNo. Name Course 4 Jenson Hibernate 5 jacqub Hibernate 6 Mandy C 8 John Hibernate 9 Linda Hibernate