Не найден конвертер, способный преобразовать тип [java.lang.String] в тип [java.time.Instant] - PullRequest
0 голосов
/ 05 сентября 2018

Мы обновили springboot 1.5.3 до 2.0. Мы получаем ниже исключения при чтении существующих документов.

org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.time.Instant]

Ниже документ монго и класс сущности для того же. С предыдущей версией Springboot все работало нормально. Теперь я получаю исключение во время mongoTemplate.findOne() вызова API.

{
     "_id": "a884b47533a2f2596",
     "_class": "com.A.B.C.model.Entity1",
     "field1": "00006353",
     "field2": "384493",
     "field3": "327274",
     "date": "2018-09-03T08:25:22.461Z"
 }
public class Entity1 {
     @Id
     private String id;
     @Indexed
     private String field1;
     @Indexed
     private String field2;
     @Indexed
     private String field3;
     private Instant date;
 }

1 Ответ

0 голосов
/ 10 сентября 2018

Эта проблема связана с датами Java 8 и их сериализацией / десериализацией. Вы должны создать собственный экземпляр objectMapper и затем внедрить его в свой mongoTemplate.

Здесь это хорошо объяснено: https://gist.github.com/corbtastik/7727bb870751f488ab30383aa72c834d

Также вам нужно добавить зависимости maven:

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

Удачи!

...