У меня есть POJO с одним из полей, отображенных с помощью hibernate:
@Enumerated(EnumType.STRING)
@Column(name = "status")
private UserStatus status;
Перечисление имеет только 2 возможных значения: Активировано и Деактивировано
В моем контроллере у меня есть этот простой метод для сохранения сущности в БД:
@PostMapping("/save")
private UserDto saveUser(@RequestBody User user){
return userService.save(user);
}
Если я пытаюсь сохранить пользователя с несуществующим UserStatus
, я получаю следующее сообщение об ошибке:
"message": "JSON parse error: Cannot deserialize value of type `com.example.demo.utils.UserStatus` from String \"Deactivated1\": value not one of declared Enum instance names: [Deactivated, Activated]; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `com.example.demo.utils.UserStatus` from String \"Deactivated1\": value not one of declared Enum instance names: [Deactivated, Activated]\n at [Source: (PushbackInputStream); line: 3, column: 12] (through reference chain: com.example.demo.entity.User[\"status\"])",
Как мне справиться с сериализацией несуществующих значений? Я хочу, чтобы выбрасывать пользовательское исключение в этом случае. Спасибо!