문제

제한에 대한 작은 질문 또는 제한

내가 다음과 같은 일을한다면 :

...
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));
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top