Restrictions class provides the methods to restrict the search result based on the restriction provided.
Commonly used Restriction class methods:
1. Restrictions.eq: Make a restriction that the property value must be equal to the specified value.
Syntax:
Restrictions.eq("property", specifiedValue)
2. Restrictions.lt: Make a restriction that the property value must be less than the specified value.
Syntax:
Restrictions.lt("property", specifiedValue)
3. Restrictions.le: Make a restriction that the property value must be less than or equal to the specified value.
Syntax:
Restrictions.le("property", specifiedValue)
4. Restrictions.gt: Make a restriction that the property value must be greater than the specified value.
Syntax:
Restrictions.gt("property", specifiedValue)
5. Restrictions.ge: Make a restriction that the property value must be greater than or equal to the specified value.
Syntax:
Restrictions.ge("property", specifiedValue)
6. Restrictions.like: Make a restriction that the property value follows the specified like pattern.
Syntax:
Restrictions.like("property", "likePattern")
7. Restrictions.between: Make a restriction that the property value must be between the start and end limit values.
Syntax:
Restrictions.between("property", startValue, endValue)
8. Restrictions.isNull: Make a restriction that the property value must be null.
Syntax:
Restrictions.isNull("property")
9. Restrictions.isNotNull: Make a restriction that the property value must not be null.
Syntax:
Restrictions.isNotNull(“property”)
Example: Restrictions query
Student.java
/** * This class represents a persistent class for Student. * @author w3schools */ public class Student { //data members private int studentId; private String firstName; private String lastName; private String className; private String rollNo; private int age; //no-argument constructor public Student(){ } //getter and setter methods public int getStudentId() { return studentId; } public void setStudentId(int studentId) { this.studentId = studentId; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public String getRollNo() { return rollNo; } public void setRollNo(String rollNo) { this.rollNo = rollNo; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } |
hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="dialect"> org.hibernate.dialect.OracleDialect </property> <property name="connection.url"> jdbc:oracle:thin:@localhost:1521:XE </property> <property name="connection.username"> system </property> <property name="connection.password"> oracle </property> <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver </property> <property name="hbm2ddl.auto"> update </property> <property name="show_sql"> true </property> <mapping resource="student.hbm.xml"/> </session-factory> </hibernate-configuration> |
student.hbm.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.w3schools.business.Student" table="Student"> <id name="studentId" type="int" column="Student_Id"> <generator class="native"></generator> </id> <property name="firstName" column="First_Name" type="string"/> <property name="lastName" column="Last_Name" type="string"/> <property name="className" column="Class" type="string"/> <property name="rollNo" column="RollNo" type="string"/> <property name="age" column="Age" type="int"/> </class> </hibernate-mapping> |
HibernateUtil.java
import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** * This is a utility class for getting the hibernate session object. * @author w3schools */ public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { SessionFactory sessionFactory = null; try { //Create the configuration object. Configuration configuration = new Configuration(); //Initialize the configuration object //with the configuration file data configuration.configure("hibernate.cfg.xml"); // Get the SessionFactory object from configuration. sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { e.printStackTrace(); } return sessionFactory; } public static SessionFactory getSessionFactory() { return sessionFactory; } } |
HibernateTest.java
import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import com.w3schools.persistence.HibernateUtil; /** * This class is used for the hibernate operations. * @author w3schools */ public class HibernateTest { public static void main(String args[]){ //Create the student object. Student student = new Student(); //Setting the object properties. student.setFirstName("Ashish"); student.setLastName("Malik"); student.setClassName("MCA final"); student.setRollNo("MCA/07/21"); student.setAge(27); //Get the session object. Session session = HibernateUtil.getSessionFactory().openSession(); //Start hibernate transaction. session.beginTransaction(); //Persist the student object. session.save(student); //Commit hibernate transaction. session.getTransaction().commit(); //select a student record using Criteria restriction query Criteria criteria = session.createCriteria(Student.class); criteria.add(Restrictions.eq("rollNo", "MCA/07/21")); Student stu = (Student) criteria.uniqueResult(); System.out.println("First Name: " + stu.getFirstName()); System.out.println("Last Name: " + stu.getLastName()); System.out.println("Class: " + stu.getClassName()); System.out.println("RollNo: " + stu.getRollNo()); System.out.println("Age: " + stu.getAge()); //Close hibernate session. session.close(); } } |
Output:
Hibernate: select hibernate_sequence.nextval from dual Hibernate: insert into Student (First_Name, Last_Name, Class, RollNo, Age, Student_Id) values (?, ?, ?, ?, ?, ?) Hibernate: select this_.Student_Id as Student1_0_0_, this_.First_Name as First2_0_0_, this_.Last_Name as Last3_0_0_, this_.Class as Class0_0_, this_.RollNo as RollNo0_0_, this_.Age as Age0_0_ from Student this_ where this_.RollNo=? First Name: Ashish Last Name: Malik Class: MCA final RollNo: MCA/07/21 Age: 27 |