如何在JPA的Criteria API中表达文字true
和文字false
?
我正在寻找Predicate alwaysTrue = CriterialBuilder.DefaultLiterals.TRUE
之类的东西(类似于java.lang.Boolean.TRUE
)。
答案 0 :(得分:37)
要获得始终真实 Predicate
实例,请使用criteriaBuilder.and()
。
要获得始终 false Predicate
实例,请使用criteriaBuilder.or()
。
答案 1 :(得分:9)
CriteriaBuilder#conjunction()返回一个TRUE谓词。
CriteriaBuilder#disjunction()返回一个FALSE谓词。
/**
* Create a conjunction (with zero conjuncts).
* A conjunction with zero conjuncts is true.
*
* @return and predicate
*/
Predicate conjunction();
/**
* Create a disjunction (with zero disjuncts).
* A disjunction with zero disjuncts is false.
*
* @return or predicate
*/
Predicate disjunction();
答案 2 :(得分:0)
尽管其他答案可以解决问题,但我认为它们并未体现出代码的意图,该意图应该是“永远是真实的谓词”。
我个人认为下面的方法更清晰,尽管更长一些。
始终为真
criteriaBuilder.isTrue(criteriaBuilder.literal(true));
总是错误
criteriaBuilder.isFalse(criteriaBuilder.literal(true));