Мой класс сущности аннотируется с помощью @NotNull
спящего режима для одного из полей. Я занимаюсь исключением в @ExceptionHelper
. Моя проблема в том, что я хочу получить доступ к значению недопустимого поля, чтобы я мог добавить его в регистратор.Получение значения недействительного поля после MethodArgumentNotValidException
Здесь ExceptionHandler
:
@ExceptionHandler({ MethodArgumentNotValidException .class })
@ResponseBody
public ResponseEntity<?> handleInvalidMethodArgException(MethodArgumentNotValidException de) {
List<FieldError> bindingResult = de.getBindingResult().getFieldErrors();
LOGGER.debug(String.format("Start : %s : handleDataexception()", this
.getClass().getSimpleName()));
for(FieldError fieldError: bindingResult){
LOGGER.debug("Invalid {} value submitted for {}",
fieldError.getRejectedValue(), fieldError.getField());
}
ErrorMsg = new ErrorMsg(errorCode, errorMessage);
return new ResponseEntity<>(errMsg, HttpStatus.NOT_FOUND);
}
Я добавил @Validated
с @RequestBody
в контроллере.
Спасибо за ответ. Я не вижу ссылки, которые могли бы помочь добавить неправильный материал в регистратор. –
Я добавил простой образ с моей концепцией. Ассемблер - это класс, который обрабатывает вашу сущность до dto и вашего dto для сущности. Transfer/Validation - это место, где вы можете добавить свой журнал. DTO - объект передачи данных, объект, созданный только для передачи необходимых данных из представления в модель и наоборот. Он может содержать меньше полей, чем сущность (все поля, которые вам нужно представить). – pokemzok