当前位置: 首页 > 工具软件 > Criteria4JPA > 使用案例 >

java criteria or_java-JPA Criteria API中的比较日期实体

陈成济
2023-12-01

将JPA 2与EclipseLink实现一起使用。

我正在尝试建立一个动态查询,该查询应该使我在给定日期后仍保留一些记录。

CriteriaBuilder builder = em.getCriteriaBuilder();

CriteriaQuery criteria = builder.createQuery(Event.class);

Root root = criteria.from(Event.class);

criteria.select(root);

criteria.distinct(true);

List predicates = new ArrayList();

//...

if (dateLimit != null){

ParameterExpression param = builder.parameter(Date.class, "dateLimit");

predicates.add(builder.lessThanOrEqualTo(root.get("dateCreated"), param));

}

lessThanOrEqualTo()和le()是API中仅有的两种在这种情况下可能对我有帮助的方法。 这个警告是由日食引发的:

Bound mismatch: The generic method lessThanOrEqualTo(Expression extends Y>, Expression extends Y>)

of type CriteriaBuilder is not applicable for the arguments (Path, ParameterExpression).

The inferred type Object is not a valid substitute for the bounded parameter

>

我可以想象我没有针对此问题采取正确的方法,但是我找不到任何可能的解决方案的提示或指示。

 类似资料: