我正在使用这样的模型对象:
@Entity
public class Address {
@Id
@GeneratedValue
private long id;
@NotNull
@Size(min = 1, max = 20)
private String location;
@OneToOne(mappedBy = "address")
private Person person;
}
带有存储库
@RepositoryRestResource(collectionResourceRel = "address", path = "address")
public interface AddressRepository extends PagingAndSortingRepository<Address, Long> {
}
当我尝试发布破坏bean约束的对象时,我得到的错误响应很差:
{“时间戳”:“ 2018-10-05T14:48:23.667 + 0000”,“状态”:500,“错误”:“内部 服务器错误“,”消息“:”无法提交JPA事务;嵌套的 异常是javax.persistence.RollbackException:时出错 提交交易”,“路径”:“ /地址”}
如何在不自己执行每个rest控制器的情况下获得有用的错误消息?
答案 0 :(得分:1)
定义Controller建议以全局处理异常,并以字符串或ErrorResponse
对象(您可以在其中定义自己的属性)返回自定义消息。
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RollbackException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public String handleRollbackException(RollbackException ex) {
String errorMessage = "Your custom message";
return errorMessage ;
}
}