최대 절전 모드 제한 및/또는 순서
문제
제한에 대한 작은 질문 또는 제한
내가 다음과 같은 일을한다면 :
...
criterion = criterionA;
criterion = Restrictions.and(criterion, criterionB);
criterion = Restrictions.or(criterion, criterionC);
criterion = Restrictions.and(criterion, criterionD);
이것은 다음과 같이 취급 될 것입니다.
(A and B) or (C and D) (following mathematical conventions)
또는 제한이 추가 된 순서대로 처리 될 것입니다.
(((A and B) or C) and D)
...가 있으면 참조를 추가하십시오 ...
해결책
그것은 후자로 취급되어야한다
(((A and B) or C) and D)
당신은 할 수 있습니다
criterion = Restriction.or(Restrictions.and(criterionA, criterionB), Restrictions.and(criterionC, criterionD))
첫 번째 솔루션을 원한다면
다른 팁
우선 순위 규칙이 없습니다 (프로그래밍 언어 나 CFG 파서에서와 같이) 메소드 호출 순서는 표현을 명확하게 결정합니다.
(A 및 B) 또는 (C 및 D)는 다음으로 번역되어야합니다.
import static org.hibernate.criterion.Restrictions.*;
...
criterion = or(and(A, B), and(C,D));
제휴하지 않습니다 StackOverflow