hibernate - 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)]
解决方案
前
predicate = criteriaBuilder.lessThan(i.get(column), param.getValue().toString());
后
predicate = criteriaBuilder.lessThan(i.get(column), (Comparable) param.getValue());
摆脱 toString 并使用 Comparable 帮助我解决了这个问题。
推荐阅读
- bash - Bash 参数外壳扩展计数未知字符
- postgresql - SUBSTR 和 SUBSTRING 的区别
- php - WebSockets + ZeroMQ 与 WebSockets 相比有什么好处?
- microsoft-teams - Microsoft Teams 不正确的对话信息数据
- javascript - 有什么方法可以代替使用键盘键,而是使用屏幕上的按钮?
- kubernetes - 从镜头中移除 Kubernetes 集群设置
- react-native - 错误:运行 `yarn run install-pods` 时产生 pod ENOENT
- angular - 使用 ng serve 在 Angular 中发生未处理的异常
- knockout.js - 仅在带有淘汰赛的特定页面上显示按钮
- python - Appium 错误:appium-python 脚本无法连接到应用程序,而 Appium Desktop 可以