Criteria c = session.createCriteria(Employee.class, "e");
DetachedCriteria dc = DetachedCriteria.forClass(Departemt.class, "d");
dc.add(Restrictions.isNotNull("d.adminId");
dc.setProjection(Projections.property("d.adminId"));
c.add(Subqueries.propertyIn("e.id", dc));
Вызов setProjection
заставляет подзапрос возвращать свойство adminId
только вместо всей сущности Department
. Subqueries.propertyIn
создает ограничение: свойство id
искомого сотрудника должно быть in
набором результатов, возвращаемых подзапросом.