Запрос критериев гибернации для ((C1 и C2) или C3) и C4 - PullRequest
0 голосов
/ 06 мая 2020

        Predicate C= cb.conjunction();
        C.getExpressions().add(C1);
        C.getExpressions().add(C2)
        Predicate orCondition = cb.disjunction();
        orCondition.getExpressions().add(C3);
        orCondition.getExpressions().add(C);
        C4.getExpressions().add(orCondition);

Но он не работает должным образом.

Я также пробовал использовать Criterion, но не смог добавить Criterion в выражения гибернации. Также это устаревший API, поэтому любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 06 мая 2020

Разве это не должно быть что-то вроде

Predicate innerAnd = cb.conjunction();
innerAnd.getExpressions().add(C1);
innerAnd.getExpressions().add(C2);

Predicate or = cb.disjunction();
or.getExpressions().add(innerAnd);
or.getExpressions().add(C3);

Predicate outerAnd = cb.conjunction();
outerAnd.getExpressions().add(or);
outerAnd.getExpressions().add(C4);

Ваш код скорее ведет к чему-то вроде

C1 and C2 and C3

, а я не вижу C4 в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...