在已弃用的 Criteria API 中,我可以执行以下操作:
Object value = myFunc(); //this function returns numeric value based on some criteria
criteria.add(Restrictions.lt("column", value));
对我来说重要的功能是在编译时不知道类型,这是在运行时确定的。在新的 CriteriaQuery API 中,当我尝试调用以下代码时,它给了我一个错误。Object value = myFunc(); //this function returns numeric value based on some criteria
CriteriaBuilder builder = session.getCriteriaBuilder();
criteriaQuery.where(builder.lessThan(root.get("column"), value));
无法解析方法“lessThanOrEqualTo(javax.persistence.criteria.Path, java.lang.Object)”
最佳答案
所以只需投 value
至 Comparable
正如 API 所期望的那样。
关于java - 如何使用 Object 类型的参数调用 CriteriaBuilder.lessThan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66570240/