Question

petites questions sur Restrictions.or et Restrictions.and

Si je fais quelque chose comme ça:

...
criterion = criterionA;
criterion = Restrictions.and(criterion, criterionB);
criterion = Restrictions.or(criterion, criterionC);
criterion = Restrictions.and(criterion, criterionD);

Cela sera-t-il traité comme:

(A and B) or (C and D) (following mathematical conventions)

Ou sera-t-il traité dans l'ordre dans lequel les restrictions ont été ajoutées:

(((A and B) or C) and D)

Veuillez également ajouter des références s'il y en a ...

Était-ce utile?

La solution

Il devrait être traité comme ce dernier

(((A and B) or C) and D)

Vous pourriez faire

criterion = Restriction.or(Restrictions.and(criterionA, criterionB), Restrictions.and(criterionC, criterionD))

Si vous voulez la première solution

Autres conseils

il n'y a pas de règles de priorité (comme dans un langage de programmation ou dans un analyseur CFG), l'ordre des appels de méthode détermine sans équivoque l'expression.

(A et B) ou (C et D) doivent être traduits en:

import static org.hibernate.criterion.Restrictions.*;
...
criterion = or(and(A, B), and(C,D));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top