【发布时间】:2018-11-11 12:53:51
【问题描述】:
我有一个实体
@Entity
class Person{
@Id
@GeneratedValue
private long id;
@Column(nullable = false, length = 10)
private String name;
}
现在当 name 为 null 或长度大于 10 时,JPA 会抛出 DataIntegrityViolationException。
有什么方法可以区分吗?
我有 ADviceController
@ControllerAdvice
public class ExceptionHandlers {
@ExceptionHandler(value = DataIntegrityViolationException.class)
public ResponseEntity<ErrorsMessage> handleViolation(DataIntegrityViolationException e ){
return new ResponseEntity(ErrorMessage(value),HttpStatus.BAD_REQUEST)
}
}
我想要做的是设置value的ErrorMessage对象,当名称为null时返回“null参数”,如果名称大于10,则将值设置为long parameter
有什么方法可以区分吗?
感谢您的帮助!
【问题讨论】:
-
不太确定,但您可以尝试通过
message或cause。两者都包含一些信息,但我不知道确切的信息是什么以及是否确实不同。 -
这不是 JPA 异常,而是 SPRING 异常。