【发布时间】:2021-04-28 07:47:29
【问题描述】:
有没有办法在 where 表达式中跳过空参数?假设我有以下代码:
Boolean deleted = null;
var criteriaBuilder = cbf.create(em, MyClass.class)
.where("deleted").eq(deleted);
当删除的变量为空时,我想跳过对“已删除”的评估。有没有办法做到这一点?
谢谢 尤克斯
【问题讨论】:
有没有办法在 where 表达式中跳过空参数?假设我有以下代码:
Boolean deleted = null;
var criteriaBuilder = cbf.create(em, MyClass.class)
.where("deleted").eq(deleted);
当删除的变量为空时,我想跳过对“已删除”的评估。有没有办法做到这一点?
谢谢 尤克斯
【问题讨论】:
这通常通过有条件地添加谓词来完成,如下所示:
var criteriaBuilder = cbf.create(em, MyClass.class);
if (deleted != null) {
criteriaBuilder.where("deleted").eq(deleted);
}
【讨论】: