Критерии гибернации api «Выбрать в» - PullRequest
7 голосов
/ 04 ноября 2010

возможно ли создать запрос на выборку с помощью hibrenate critiria api?

Пример: у меня две таблицы в отношении 1: n, компания и отдел

select * from company c where c.id in (select company_id from department d 
where d.departmentname = 'HR' and d.location = 'xyz')

1 Ответ

13 голосов
/ 04 ноября 2010

Вы можете использовать для этого DetachedCriteria

DetachedCriteria subCriteria= DetachedCriteria.forClass(Departament.class);
     subCriteria.add(Property.forName("departmentname ").eq("HR"));
     subCriteria.add(Property.forName("location ").eq("xyz"));
     subCriteria.setProjection(Projections.property("company_id "));

DetachedCriteria criteria = DetachedCriteria.forClass(Company.class);
     criteria.add(Property.forName("id").in(subCriteria));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...