标准生成器布尔值比较



我目前正在这样做。

final CriteriaBuilder builder = ...;
final boolean flag = ...;
if (flag) {
    builder.isTrue(expression);
} else {
    builder.isFalse(expression);
}

我可以这样用吗?

builder.equals(expression, flag);

这次尝试不会有任何问题吗?为表达式或某事说null。

我想您暗示使用了CriteriaBuilderequal方法。在这种情况下是的,您可以按如下方式使用它:

builder.equal(expression, flag);

这相当于:

if (flag) {
  builder.isTrue(expression);
} else {
  builder.isFalse(expression);
}

但请注意,如果使用Hibernate作为JPA提供程序,则前一个实现将抛出NPE,以防expression==null为真,而后一个实现不会。

最新更新