An example of hibernate criteria with collections is given below
CriteriaCollection.java
package net.roseindia.main;
import java.util.Iterator;
import java.util.List;
import net.roseindia.bean.Contact;
import net.roseindia.bean.Student;
import net.roseindia.util.HibernateUtil;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Property;
import org.hibernate.criterion.Subqueries;
public class CriteriaCollection {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria studentCriteria = session.createCriteria(Student.class);
DetachedCriteria contactCriteria = DetachedCriteria
.forClass(Contact.class);
contactCriteria.add(Property.forName("id").eq(1));
contactCriteria.setProjection(Projections.property("id"));
studentCriteria.add(Subqueries.propertyIn("rollNo", contactCriteria));
List list = studentCriteria.list();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Student student = (Student) iterator.next();
System.out.println(student.getName());
}
}
}
| 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 in (select this_.ID
as y0_ from contact this_ where this_.ID=?) Ramesh |