質問

Restrictions.orとRestrictions.andに関する小さな疑問

私はこのような何かをしている場合:

...
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