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();