休眠限制和/或命令

For*_*ega 4 java hibernate criteria

关于Restrictions.or和Restrictions.and的小问题

如果我做这样的事情:

...
criterion = criterionA;
criterion = Restrictions.and(criterion, criterionB);
criterion = Restrictions.or(criterion, criterionC);
criterion = Restrictions.and(criterion, criterionD);
Run Code Online (Sandbox Code Playgroud)

这会被视为:

(A and B) or (C and D) (following mathematical conventions)
Run Code Online (Sandbox Code Playgroud)

或者它将按照添加限制的顺序进行处理:

(((A and B) or C) and D)
Run Code Online (Sandbox Code Playgroud)

如果有的话还请添加参考文献...

jit*_*ter 6

它应该被视为后者

(((A and B) or C) and D)
Run Code Online (Sandbox Code Playgroud)

你可以做到

criterion = Restriction.or(Restrictions.and(criterionA, criterionB), Restrictions.and(criterionC, criterionD))
Run Code Online (Sandbox Code Playgroud)

如果你想要第一个解决方案