The Hibernate Criteria And Or is same the the logical "AND(&&)" and logical "Or(||)". To apply such type of condition based on logical 'AND' and logical 'Or' you can write as follows.
Criteria Or operationCriteria criteria = session.createCriteria(Student.class); Criterion roll = Restrictions.eq("rollNo", 2); Criterion name = Restrictions.eq("name", "John"); LogicalExpression expression = Restrictions.or(roll, name); criteria.add(expression); List list = criteria.list();
Criteria criteria = session.createCriteria(Student.class); Criterion roll = Restrictions.eq("rollNo", 1); Criterion name = Restrictions.eq("name", "John"); LogicalExpression expression = Restrictions.and(roll, name); criteria.add(expression); List list = criteria.list();
Source Code for Criteria Or Application
OrCriteria.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.Criterion; import org.hibernate.criterion.LogicalExpression; import org.hibernate.criterion.Restrictions; public class OrCriteria { @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); Criterion roll = Restrictions.eq("rollNo", 2); Criterion name = Restrictions.eq("name", "John"); LogicalExpression expression = Restrictions.or(roll, name); criteria.add(expression); List list = criteria.list(); Iterator itr = list.iterator(); System.out.println("\n"); System.out.println("Student Details :- \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("First Name : " + ((Student) object).getName()); } } 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=? or this_.name=?) Student Details :- First Name : John First Name : Raman |
Source Code for Criteria And Application
AndCriteria.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.Criterion; import org.hibernate.criterion.LogicalExpression; import org.hibernate.criterion.Restrictions; public class AndCriteria { @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); Criterion roll = Restrictions.eq("rollNo", 1); Criterion name = Restrictions.eq("name", "John"); LogicalExpression expression = Restrictions.and(roll, name); criteria.add(expression); List list = criteria.list(); Iterator itr = list.iterator(); System.out.println("\n"); System.out.println("Student Details :- \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("First Name : " + ((Student) object).getName()); } } 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=? and this_.name=?) Student Details :- First Name : John |
Download the Complete Source Code
Advertisements
Ads
Ads