Hibernate subquery

final Criteria rootCriteria = session.createCriteria(Company.class, "c").setMaxResults(maxResult).setFirstResult(firstResult) ;
     final DetachedCriteria subQuery = DetachedCriteria.forClass(Target.class, "t") //
      .add(Restrictions.eq("t.id", targetId)).add(Restrictions.eq("t.owner.id", ownerId)) //
      .createAlias("t.companies", "cp") //
      .setProjection(Projections.property("cp.id"));
     final List<Company> companies = rootCriteria.add(Subqueries.propertyIn("c.id", subQuery)).list();


OR

DetachedCriteria subQuery = DetachedCriteria.forClass(WorkgroupD.class, "wgd")
                .add(Restrictions.eq("wgd.empId.empId", empId))
                .setProjection(Projections.property("workgroupId"));
        Criteria criteria = sf.getCurrentSession().createCriteria(MasJobtype.class, "mj")
                .add(Subqueries.propertyIn("mj.workgroupId.workgroupId", subQuery));
        return criteria.list();


ที่มา :: http://avricot.com/blog/index.php?post/2011/07/11/hibernate-%3A-paginationwith-collection-and-the-criteria-api

โพสต์ยอดนิยมจากบล็อกนี้

J2EE คืออะไร

การออกแบบ RESTful API - วิธีปฏิบัติที่ดี

วิธีแก้ : แก้ไขตารางแล้ว save ไม่ได้ ต้องสร้างใหม่ - Saving changes is not permitted in SQL Server Management Studio