Hibernate criteria join

Pasted from stackoverflow.com

Hello, We have two tables Family and Member, the relation between these two is Family has set of members in it but member don't have any family relationship within it.

I wanted get member using dob and family for that I am using Hibernate criteria API's but I am not getting how to write join query since members don't have Family instance with it. So not able to use FetchMode. Any other way to achieve this ?

Ans:

DetachedCriteria subquery = DetachedCriteria.forClass(Family.class, "family")
.add(Expression.eq("family.id", family.getId()));

subquery.createAlias("members", "members")
.add(Restrictions.eqProperty("members.id", "m.id"))
.add(Expression.eq("members.DOB",Date));

subquery.setProjection(Property.forName("members.id"));

Criteria crit = session.createCriteria(Member.class, "m")
.add(Subqueries.propertyIn("m.id", subquery));

results = crit.list();

Posted at at 1:35 AM on Friday, November 6, 2009 by Posted by Ravindra Nikam | 0 comments   | Filed under: , ,