在编写以下语句时,Eclipse建议我将criteriaBuilder.equal方法调用强制转换为(CriteriaBuilder),以便可以调用CriteriaBuilder的“ and”方法。
criteriaQuery.where((criteriaBuilder.equal(subscriptionRoot.get("user"), user))
.and(criteriaBuilder.equal(subscriptionRoot.get("plan"), plan)));
请注意,“等于”方法返回一个谓词类型的对象。我一直在研究CriteriaBuilder接口和Predicate接口的Java API。我在同一棵树中找不到CriteriaBuilder和Predicate。
我认为这是一个基本的Java问题。如何将实现谓词的对象转换为实现CriteriaBuilder的对象?
谢谢。
最佳答案
相反,您需要以下代码:
criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.equal(subscriptionRoot.get("user"), user),
criteriaBuilder.equal(subscriptionRoot.get("plan"), plan)));
CriteriaQuery.and
带有几个参数,每个Predicate
应一起and
。关于java - 将Predicate转换为CriteriaBuilder,这怎么可能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23586977/