Хм, я не вижу ничего связанного с подменышами

я есть следующие DTO:

@Value
public class PracticeResults {
    @NotNull
    Map<Long, Boolean> wordAnswers;
}

@Value
public class ProfileMetaDto {

    @NotEmpty
    String name;
    @Email
    String email;
    @Size(min = 5)
    String password;
}

@Value - это аннотация Lombok, которая генерирует конструктор. Это означает, что этот класс не имеет конструктора без аргументов.

Я использовал Spring Boot 1.4.3.RELEASE, и компонент ObjectMapper мог десериализовать такой объект из json.

После обновления до Spring Boot 2.0.0.M7 я получаю следующее исключение:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of PracticeResults (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

Версия Jackson, используемая в Spring Boot 1.4.3,2.8.10 а для Spring Boot 2.0.0.M7 есть2.9.2.

Я пытался Google эту проблему, но нашел только решения с@JsonCreator или же@JsonProperty.

Итак, почему он работает с Spring Boot 1.4.3 и не работает с Spring Boot 2? Можно ли настроить бин так, чтобы он вел себя так же, как и в старой версии?

Ответы на вопрос(3)

Ваш ответ на вопрос