【发布时间】:2021-05-11 19:30:18
【问题描述】:
所以我的File 创建 日期是OffsetDateTime 中的时间戳,API 的请求参数是LocalDate,没有任何时间。如果日期相同,我需要比较它们是否相等,从等式中删除时间。
我虽然想做这样的事情,但它不能正常工作。即使是<LocalDate>。
private Specification<File> isOfInitiationDate(LocalDate initiationDate) {
return (Specification<File>) (root, criteriaQuery, criteriaBuilder) ->
criteriaBuilder.equal(root.<LocalDate>get("created"), initiationDate);
}
我收到:
Parameter value [2021-02-03] did not match expected type [java.time.OffsetDateTime (n/a)]
如果root.get("created) 的日期与LocalDate initiationDate 相同,我如何使此规范返回值?
【问题讨论】:
-
你能在调试期间在你的 IDE 中计算表达式 get("created") 吗?查看返回的具体类型并相应地进行转换。
-
@TomElias 检查,它是
OffsetDateTime,你建议我应该如何投射它以及在哪里投射?
标签: java spring jpa spring-data-jpa