Как исправить ошибку 'com.fasterxml.jackson.databind.JsonMappingException: проблема десериализации свойства' - PullRequest
0 голосов
/ 26 марта 2019

Я преобразую строку даты в формате yyyy-MM-dd в com.datastax.driver.core.LocalDate, используя сопоставитель объектов, и сохраняю эти данные в Cassandra в моем проекте загрузки Java-весны.Тип моей колонки в Кассандре - дата, и я использую com.datastax.driver.core.LocalDate в своем классе Java.Но при преобразовании карты в мой класс Java это выдает ошибку "com.fasterxml.jackson.databind.JsonMappingException: проблема десериализации свойства 'employeeedateofbirth' (ожидаемый тип: [простой тип, класс com.datastax.driver.core.LocalDate]; фактический тип: java.time.LocalDate), проблема: несоответствие типа аргумента ".Я не использую java.time.LocalDate, но он дает мне ошибку несоответствия аргумента.

Я даже попытался зарегистрировать модуль, используя следующий код

ObjectMapper oMapper = new ObjectMapper().registerModule(new ParameterNamesModule()).registerModule(new Jdk8Module()).registerModule(new JavaTimeModule());
oMapper.findAndRegisterModules();

Я также попробовал некоторую конфигурацию для сопоставления объектов, например

oMapper.configure(MapperFeature.USE_GETTERS_AS_SETTERS, false) ;

Даже использовал аннотацию для моего атрибута:

@JsonDeserialize(using = LocalDateDeserializer.class)
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate employeedateofbirth;

Но мне кажется, что ничего не работает.Любая помощь будет оценена.Заранее спасибо.

1 Ответ

1 голос
/ 26 марта 2019

Как указывает сообщение об ошибке, существует несоответствие типов.Измените это в своем целевом классе:

import com.datastax.driver.core.LocalDate;

на:

import java.time.LocalDate;
...