在myBatis查询中将java.time.LocalDate设置为参数



我有一个简单的REST服务,它将日期作为路径变量并执行查询。我使用java.time.LocalDate类来存储日期,并传递如下参数:

<select id="getRecordsUpdatedAfterDate" parameterType="java.time.LocalDate" resultType="String">
SELECT ID FROM table WHERE REC_UPDT_DT > #{recUpdtDt, jdbcType=DATE}
</select>

但我没有从服务部门得到任何回复。在日志中我有这样的:

2020-04-06 10:16:16.187 DEBUG 11928 --- [nio-8080-exec-2] .c.t.g.a.m.P.getRecordsUpdatedAfterDate: ==>  Preparing: SELECT ID FROM table WHERE REC_UPDT_DT > ?
2020-04-06 10:16:16.188 DEBUG 11928 --- [nio-8080-exec-2] .c.t.g.a.m.P.getRecordsUpdatedAfterDate: ==> Parameters: 2020-01-01(LocalDate)

但在这之后什么都没有,也没有任何回应。

我做错了什么?我正在使用mybatis 3.5.2和Spring Boot。

如果在数据源中执行相同的查询,您会得到一个字符串对象吗?可能是因为dataType oor,因为你得到了不止一个结果。

添加表定义以检查ID类型。

添加此依赖

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.2</version>

最新更新