2010-11-04 33 views
6

là nó có thể tạo ra một 'chọn in'-query với api critiria hibernate?Tiêu chí Hibernate api 'Chọn trong'

Ví dụ: Tôi có hai bảng trong một 1: n mối quan hệ, công ty và bộ phận

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

Trả lời

12

Bạn có thể sử dụng cho điều này 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)); 
Các vấn đề liên quan