首页 > 解决方案 > Spring JPA规范转换根类型比较成功

问题描述

所以我File 创建的日期是一个时间戳,API的请求参数没有任何时间OffsetDateTime进来。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

标签: javaspringjpaspring-data-jpa

解决方案


如下将 OffsetDateTime 转换为 localdate,示例代码如下

OffsetDateTime offsetDateTime=get("created");
Localdate localDate=offsetDateTime.toLocaldate();

criteriaBuilder.equal(localDate, initiationDate);

推荐阅读