首页 > 解决方案 > Spring Jpa - 带有日期的存储库调用

问题描述

 filterSearchCriteria1.add(new FilterCriteria<java.time.LocalDate>("Schedule Date","=", LocalDate.now()));

        Iterable<TransactionDbo> results  = TransactionRepository.findAll(filterSpecification.getSpecifications(filterSearchCriteria1));

需要帮助...得到以下错误,如何解决?findAll 是我正在进行的存储库调用...模型的日期定义为本地日期。jpa 规范适用于整数或字符串,但适用于日期。

org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [2018-07-31] did not match expected type [java.time.LocalDate (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value [2018-07-31] did not match expected type [java.time.LocalDate (n/a)]

标签: hibernatejava-8spring-data-jpa

解决方案


predicate = criteriaBuilder.lessThan(i.get(column),  param.getValue().toString());

predicate = criteriaBuilder.lessThan(i.get(column), (Comparable) param.getValue());

摆脱 toString 并使用 Comparable 帮助我解决了这个问题。


推荐阅读