如何使用 Object 类型的参数调用 CriteriaBuilder.lessThan

tom*_*iem 5 java hibernate jpa

在已弃用的 Criteria API 中,我可以执行以下操作:

Object value = myFunc(); //this function returns numeric value based on some criteria
criteria.add(Restrictions.lt("column", value));
Run Code Online (Sandbox Code Playgroud)

对我来说重要的功能是在编译时不知道类型,这是在运行时确定的。在新的 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));
Run Code Online (Sandbox Code Playgroud)

无法解析方法“lessThanOrEqualTo(javax.persistence.criteria.Path, java.lang.Object)”

Chr*_*kov 7

因此,只需按照 API 的预期将其value强制转换即可。Comparable