相关疑难解决方法(0)

SQL逻辑运算符优先级:And和Or

以下两个陈述是否相同?

SELECT [...]
FROM [...]
WHERE some_col in (1,2,3,4,5) AND some_other_expr
Run Code Online (Sandbox Code Playgroud)

SELECT [...]
FROM [...]
WHERE some_col in (1,2,3) or some_col in (4,5) AND some_other_expr
Run Code Online (Sandbox Code Playgroud)

我可以使用某种真值表来验证这一点吗?

sql operator-precedence logical-operators

164
推荐指数
4
解决办法
13万
查看次数

JPA 2.0标准和谓词分组

在复合谓词方面,我遇到了Hibernate EntityManager 3.5.3-Final的问题.

示例(不是实际的代码片段,但想法应该清楚):

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
Predicate predicate1 = criteriaBuilder.conjunction();
Predicate predicate2 = criteriaBuilder.conjunction();
// These are Boolean expression with common Root
predicate1.getExpressions().add(expression1);
predicate1.getExpressions().add(expression2);
predicate2.getExpressions().add(expression3);
predicate2.getExpressions().add(expression4);
//...
query.where(criteriaBuilder.or(predicate1, predicate2));
Run Code Online (Sandbox Code Playgroud)

现在,我希望有类似的东西:

SELECT ... FROM ... WHERE (expression1 AND expression2) OR (expression3 AND expression4)
Run Code Online (Sandbox Code Playgroud)

但是我最终得到:

SELECT ... FROM ... WHERE expression1 AND expression2 OR expression3 AND expression4
Run Code Online (Sandbox Code Playgroud)

我做了一些非常错误的事情还是Hibernate问题?

orm hibernate jpa derby jpa-2.0

7
推荐指数
1
解决办法
1万
查看次数