Исключение сопоставления из Java 8 LocalDateTime в MongoDB

Кажется, у меня возникла проблема с записью объекта БД с полем java.time.LocalDateTime в таблицу MongoDB. Все, что я читал, кажется, говорит о том, что это не должно быть проблемой примерно в конце 2014 года, но по какой-то причине я все еще получаю это:

org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.time.LocalDateTime] to type [java.util.Date]
at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:321) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:194) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:174) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getPotentiallyConvertedSimpleWrite(MappingMongoConverter.java:849) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeSimpleInternal(MappingMongoConverter.java:829) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeProperties(MappingMongoConverter.java:488) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:462) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:436) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.write(MappingMongoConverter.java:391) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.write(MappingMongoConverter.java:86) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.MongoTemplate.toDocument(MongoTemplate.java:1070) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
at org.springframework.data.mongodb.core.MongoTemplate.doSave(MongoTemplate.java:1253) ~[spring-data-mongodb-2.0.8.RELEASE.jar:2.0.8.RELEASE]
...

У меня есть собственный MongoConfig, который выглядит так. Я попытался удалить его, но это не решило проблему, поэтому проблема здесь вроде бы ни в чем, но тем не менее вот она:

@Configuration
public class MongoConfig {

@Value("${spring.data.mongodb.database}")
private String database;

@Autowired
private MongoDbFactory mongoDbFactory;

public @Bean
MongoDbFactory mongoDBFactory() {
    return new SimpleMongoDbFactory(new MongoClient(), database);
}

@Bean
public MongoTemplate mongoTemplate() {
    DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);

    // Remove _class
    MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, new MongoMappingContext());
    converter.setTypeMapper(new DefaultMongoTypeMapper(null));

    return new MongoTemplate(mongoDBFactory(), converter);
}

}

Я мог бы написать собственный конвертер, чтобы сделать это для меня, если мне нужно, но во всей документации, которую я прочитал, говорится, что эта ошибка была исправлена ​​примерно в ноябре 2014 года, поэтому мне интересно, что я сделал неправильно. Любые идеи? Спасибо.


person Ertai87    schedule 27.11.2018    source источник
comment
Проверьте stackoverflow.com/a/43201932/5873923. Для хранения используйте Instant и конвертируйте в/из LocalDateTime (или другие классы из API времени) при необходимости.   -  person Marc Tarin    schedule 28.11.2018
comment
Вам нужно добавить конвертер и зарегистрироваться весной.   -  person Vipul    schedule 29.11.2018
comment
Я решил это, используя решение, указанное в комментарии @MarcTarin, и вместо этого просто использовал java.time.Instant.   -  person Ertai87    schedule 29.11.2018
comment
@ Ertai87, не стесняйтесь, проголосуйте за ответ по ссылке, которую я дал;)   -  person Marc Tarin    schedule 30.11.2018