Как я могу сказать Hibernate Validator выдать исключение, если входящий запрос имеет меньше или больше полей, чем POJO - PullRequest
0 голосов
/ 08 октября 2019

Например, мой POJO имеет два поля

public class User {
    @NotNull
    private String firstName;
    @NotNull
    private String lastName;
}

, если тело входящего запроса похоже на следующее, hibernate не выдаст никакой ошибки, так как все обязательные поля есть.

{
  "firstName": "cat",
  "lastName": "dog",
  "extraField": "whatever"
}

Можно ли как-то сказать hibernate, чтобы проверить этот сценарий? Я знаю, что могу просто @JsonCreator сделать трюк. Но стоит ли сочетать спящего и Джексона вместе?

1 Ответ

1 голос
/ 08 октября 2019

Если вы используете автоконфигурацию, то следующее свойство в application.properties поможет вам.

spring.jackson.deserialization.fail-on-unknown-properties=true

Это эквивалентно следующему

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);

Я сделал небольшоетест без пружины и выкидывает исключение com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException

...