2011-09-08 3 views

답변

8

조건 API는 다른 쿼리를 제한으로 추가 할 수있는 조항이 없습니다. @Niroshan Abayakoon이 말하고자하는 것은 IN 절의 쿼리를 seperatly &에 추가해야한다고 생각합니다. Restrictions.in() 조건.

List<?> entity2Data=//get data from either a query or criteria 
List<?> entity3Data=//get data from either a query or criteria 
Criteria c = // obtain criteria from session 
// basically creates an OR condition chain 
Disjunction orConditions = Restrctions.disjunction(); 
orConditions.add(Restrictions.in("obj", entity2Data)); 
orConditions.add(Restrictions.in("obj", entity3Data)); 
c.add(orConditions); 

IN 절의 목록을 고려하면 최대 절전 모드가됩니다.

이와 같은 상황에서는 항상 HQL로 대체하는 것이 좋습니다.

+0

대단히 감사합니다. 하지만 여전히 "createCriteria (null)"을 이해하지 못합니다. 왜 null 매개 변수입니까? 언제 Entity1을 쿼리합니까? 왜 두 번째 createCriteria가 첫 번째 createCriteria와 독립적인가? 나는 끝에 하나의리스트를 얻을 필요가있다. 감사! – edutesoy

+0

그 오류는 ... 내 답변을 업데이 트했습니다 ... –

+0

'Restrictions.in (String, String)'은 ** propertyName **을 첫 번째 매개 변수로 기대하기 때문에 여전히 문제가 있습니다. Entity2.class 또는 "Entity"중 어느 것도 작동하지 않음). – edutesoy

관련 문제