我想配置一个类型处理程序来将Date列转换为LocalDate(Java 8),但是我在注册时遇到了问题。我在MyBatis文档和project上建立了我的typeHandler。
映射器:
<resultMap id="clientResult" type="client">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="birthday" column="birthday" />
</resultMap>
客户端类:
public class Client {
private Long id;
private String name;
private java.time.LocalDate birthday;
}
类型处理程序:
@MappedJdbcTypes(value = JdbcType.DATE)
public class LocalDateHandler extends BaseTypeHandler<java.time.LocalDate> {
...
}
我在启动时收到此错误:
org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalStateException: No typehandler found for property birthday
经过一些调试和实验,我找到了多种解决方案。
删除@MappedJdbcTypes
更改@MappedJdbcTypes
注释以使用未记录的includeNullJdbcType = true
@MappedJdbcTypes(value = JdbcType.DATE, includeNullJdbcType = true)
将jdbcType
添加到resultMap
媒体资源:
<result property="birthday" column="birthday" jdbcType="DATE" />
但是,我希望一切按上述方式工作。这是怎么回事?我该怎么办?
注意:我使用MyBatis 3.3.1