((C1 和 C2) 或 C3) 和 C4 的 Hibernate 标准查询
Hibernate criteria query for ((C1 and C2) or C3) and C4
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.So,如有任何帮助,我们将不胜感激。
不应该是
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
。
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.So,如有任何帮助,我们将不胜感激。
不应该是
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
。