以下是较大标准查询的摘录:
...
Expression literal = builder.literal((String) "%" + value + "%");
List<Predicate> globalPredicate = new ArrayList<>();
globalPredicate.add(builder.equal(subject.get(Subject_.email), literal));
predicates.add(builder.or(globalPredicate.toArray(new Predicate[globalPredicate.size()])));
...
存在一种情况,我明确希望传入 null
并查找 Null
的 Subject_.email
。我尝试传入 null
并发现标准 API 需要 nullLiteral()。我尝试在适当的时候有条件地用 nullLiteral() 替换 literal,但后来我什么也没返回。
创建与数据库中指定属性的 null
值匹配的查询的最佳实践方法是什么?
最佳答案
我通常使用Expression#isNull()
。使用您的示例:
globalPredicate.add(subject.get(Subject_.email).isNull());
至于这是否被认为是“最佳实践”,Oracle 的 Java EE 教程 40.3.5.1 The Expression Interface Methods 中对此进行了演示。 .
关于jpa - 标准 API 查找 'NULL',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240013/