比较 JPA 标准 API 中的日期实体
2022-08-31 17:12:43
将 JPA 2 与 EclipseLink 实现结合使用。
我正在尝试构建一个动态查询,它应该为我带来一些在给定日期后仍然存在的记录。
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Event> criteria = builder.createQuery(Event.class);
Root<Event> root = criteria.from(Event.class);
criteria.select(root);
criteria.distinct(true);
List<Predicate> predicates = new ArrayList<Predicate>();
//...
if (dateLimit != null){
ParameterExpression<Date> param = builder.parameter(Date.class, "dateLimit");
predicates.add(builder.lessThanOrEqualTo(root.get("dateCreated"), param));
}
lessThanOrEqualTo()
并且是API中仅有的两种方法,在这种情况下看起来可能会对我有所帮助。不过,这个警告是由日食引发的:le()
Bound mismatch: The generic method lessThanOrEqualTo(Expression<? extends Y>, Expression<? extends Y>)
of type CriteriaBuilder is not applicable for the arguments (Path<Object>, ParameterExpression<Date>).
The inferred type Object is not a valid substitute for the bounded parameter
<Y extends Comparable<? super Y>>
我可以想象我没有对这个问题采取正确的方法,但我在任何地方都找不到一些可能的解决方案的提示或指针。