Hibernate In Clause
In this section we will introduce concept of Hibernate In Clause.
Hibernate In Clause :
The IN clause allows user to specify multiple values in a WHERE clause. You can use IN clause with your collection.
Suppose you want to choose student record in some collection of names So you can use IN clause here.
Example : This example satisfied your required condition as mentioned above. We are searching record of such students whose details are in the given collection name.
package net.roseindia.main; import java.util.Iterator; import java.util.List; import java.util.Map; import net.roseindia.table.Student; import net.roseindia.util.HibernateUtil; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; public class MainClazz { public static void main(String[] args) { Session session = HibernateUtil.getSessionFactory().openSession(); String hql = "SELECT stud.roll, stud.name, stud.course FROM Student stud WHERE stud.name IN(:name)"; Query query = session.createQuery(hql); query.setParameterList("name", new String[] { "Ron", "Som", "Roxi"}); query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); List objectList = query.list(); Iterator iterator = objectList.iterator(); System.out.println("RollNo.\t Name \t Course"); while (iterator.hasNext()) { Map map = (Map) iterator.next(); System.out.print(map.get("0")); System.out.print("\t" + map.get("1")); System.out.print("\t" + map.get("2")); System.out.println(); } session.close(); // session is closed } }
Output :
Hibernate: select student0_.roll_no as col_0_0_, student0_.name as col_1_0_, student0_.course as col_2_0_ from student student0_ where student0_.name in (? , ? , ?) RollNo. Name Course 1 Ron java 3 Roxi unix