Jin*_*won 4 jpa criteria criteria-api
我现在正在这样做.
final CriteriaBuilder builder = ...;
final boolean flag = ...;
if (flag) {
builder.isTrue(expression);
} else {
builder.isFalse(expression);
}
Run Code Online (Sandbox Code Playgroud)
我能这样用吗?
builder.equals(expression, flag);
Run Code Online (Sandbox Code Playgroud)
这尝试不会有任何问题吗?对表达式或其他东西说null.
Ole*_*nko 12
我想你暗示使用CriteriaBuilder的equal方法.在这种情况下,您可以按如下方式使用它:
builder.equal(expression, flag);
Run Code Online (Sandbox Code Playgroud)
这相当于:
if (flag) {
builder.isTrue(expression);
} else {
builder.isFalse(expression);
}
Run Code Online (Sandbox Code Playgroud)
但要注意,如果你使用Hibernate的JPA供应商前实现将在情况下抛出NPE expression==null是真实的,而后者不会.
| 归档时间: |
|
| 查看次数: |
7427 次 |
| 最近记录: |