我正在制作一个附加了 MySQL 数据库的 Spring Boot 应用程序。
我已经在用户表中将用户名标记为唯一,当我尝试使用现有用户名添加新用户时,数据库会抛出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;
}
但它不起作用。