Мне нужна помощь с интеграцией Spring Boot и MyBatis. У меня есть проблема с пользовательским BaseTypeHandler. Я создал картограф:
@MappedTypes({LocalDateTime.class})
public class LocalDateTimeHandler extends BaseTypeHandler<LocalDateTime> {
Я добавил обработчик типа:
sqlSessionFactory.setTypeHandlers(new LocalDateTimeHandler[]{new LocalDateTimeHandler()});
И у меня следующая ошибка:
org.apache.ibatis.executor.ExecutorException: No constructor found in com.some.space.SomeObject matching [java.lang.Integer, java.sql.Timestamp, java.sql.Timestamp]
Где SomeObject выглядит так:
public class SomeObject {
private Long id;
private LocalDateTime created;
private LocalDateTime updated;
public SomeObject(Integer id, LocalDateTime created, LocalDateTime updated){
//..........
}
}
Я использую mybatis-spring и spring-boot-starter-web version 1.3.2.
Все примеры работы с TypeHandlers относятся к конфигурации XML, но мне нужно использовать конфигурацию Java способом. Что я делаю не так?
UPD:
Мой картограф:
@Component
@Mapper
public interface SomeObjectRepository {
@Select("SELECT * FROM some_objects")
@Results(value = {
@Result(property = "created", column = "created_date", typeHandler = LocalDateTimeTypeHandler.class, jdbcType = JdbcType.TIMESTAMP),
@Result(property = "updated", column = "updated_date", typeHandler = LocalDateTimeTypeHandler.class, jdbcType = JdbcType.TIMESTAMP)
})
List<SomeObject> getAll();
}