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