【发布时间】:2023-03-23 01:14:01
【问题描述】:
我正在使用 JpaPagingItemReader 创建批处理作业 我的查询在作业配置中如下所示:
<property name="queryString" value="SELECT a FROM EntityName a
WHERE a.status = 'RUNNING'
AND a.validTo = '2017-12-13'"/>
当我执行作业时,我收到以下异常:
java.sql.SQLDataException: ORA-01843: not a valid month
如何将正确的格式传递给查询以从数据库中获取?数据库中的列是普通sql中的时间戳我会这样做
SELECT * FROM EntityName
WHERE VALID_TO = to_timestamp('2017-12-12', 'yyyy-mm-dd')
【问题讨论】:
-
不知JAVA TYPE是什么“validTo”字段...
-
这是一个本地日期
-
那么为什么要将 TIMESTAMP/DATE 字段与文本字符串进行比较?使用 LocalDate 作为参数
-
如何将 LocalDate 作为参数传递?
-
将 JPQL 更改为
SELECT a FROM EntityName a WHERE a.status = 'RUNNING' AND a.validTo = :myParam,就像任何 JPA 文档会告诉您的那样,并将参数传入
标签: jpa spring-data-jpa jpql