Я пишу приложение, используя spring -boot-starter-jdbc (v1.3.0).
Проблема, с которой я встречалась: экземпляр BeanPropertyRowMapper
терпит неудачу, поскольку он не может преобразовать из java.sql.Timestamp
в java.time.LocalDateTime
.
Чтобы скопировать эту проблему, я реализовал
org.springframework.core.convert.converter.Converter
для этих типов.
public class TimeStampToLocalDateTimeConverter implements Converter<Timestamp, LocalDateTime> {
@Override
public LocalDateTime convert(Timestamp s) {
return s.toLocalDateTime();
}
}
Мой вопрос: Как сделать доступным TimeStampToLocalDateTimeConverter
для BeanPropertyRowMapper
.
Более общий вопрос, как я могу зарегистрировать свои конвертеры, чтобы сделать их доступными в системе?
Следующий код приводит нас к NullPointerException
на этапе инициализации:
private Set<Converter> getConverters() {
Set<Converter> converters = new HashSet<Converter>();
converters.add(new TimeStampToLocalDateTimeConverter());
converters.add(new LocalDateTimeToTimestampConverter());
return converters;
}
@Bean(name="conversionService")
public ConversionService getConversionService() {
ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
bean.setConverters(getConverters());
bean.afterPropertiesSet();
return bean.getObject();
}
Спасибо.