@ControllerAdvice не перехватывает MySQLIntegrityConstraintViolationException - PullRequest
0 голосов
/ 27 октября 2019

Я делаю приложение Spring Boot с подключенной к нему базой данных MySQL.

Я уже пометил username как уникальный в пользовательской таблице, и БД выдает MySQLIntegrityConstraintViolationException когда я пытаюсь добавить нового пользователя с существующим именем пользователя.

Есть ли способ заставить ControllerAdvice обрабатывать это исключение? Я попытался сделать обработчик так:

@ExceptionHandler(MySQLIntegrityConstraintViolationException.class)
    @ResponseStatus(HttpStatus.CONFLICT)
    @ResponseBody
    public MyBadInputResponse databaseIntegrityViolationDuplicate(MySQLIntegrityConstraintViolationException ex) {
        MyBadInputResponse bir = new MyBadInputResponse("The request value already exists in the database", 
                ex.getLocalizedMessage());
        logger.error(bir.toString());
        return bir;
    }

Но он не работает.

...