如何使用Spring / JPA处理异常?

时间:2016-11-30 08:46:26

标签: spring hibernate jpa exception spring-data-jpa

我想处理这个异常:

try {
      save = usersRepository.save(user);
}
catch (Exception gottaCatchEmAll){
      System.out.println("got it");
}
我在日志中看到

  

无法添加或更新子行:外键约束失败

我怎样才能抓住它?

1 个答案:

答案 0 :(得分:1)

我建议编写建议处理程序类来处理任何异常。例如,我假设您的例外是DataIntegrityViolationException类型。这将包含在某种DTO中,可以返回到前端或用它做你想做的事。

@ControllerAdvice
public class ExceptionHandler {

  @ExceptionHandler(DataIntegrityViolationException.class)
  @ResponseStatus(HttpStatus.BAD_REQUEST)
  @ResponseBody
  public ErrorDto processConstraintError(DataIntegrityViolationException ex) {
    return new ErrorDto(ex.getMessage());
  }

}

无需尝试从JPA中捕获任何内容。