I have defined a pattern for validating email in my Entity class. In my validation exception handler class, I have added handler for ConstraintViolationException. My appli
That is my solution...
@ExceptionHandler({DataIntegrityViolationException.class})
protected ResponseEntity
@ExceptionHandler(RollbackException.class)
public ResponseEntity handleNotValidException(RollbackException ex){
String errMessage = ex.getCause().getMessage();
List listErrMessage = getListErrMessage(errMessage);
ApiErrorsListResponse response = ApiErrorsListResponse.newBuilder()
.status(HttpStatus.NOT_ACCEPTABLE)
.errorMessage(listErrMessage)
.build();
return new ResponseEntity<>(response, HttpStatus.NOT_ACCEPTABLE);
}
public static List getListErrMessage(String msg){
Stream stream = Arrays.stream(msg.split("\n"))
.filter(s -> s.contains("\t"))
.map(s -> s.replaceAll("^([^\\{]+)\\{", ""))
.map(s -> s.replaceAll("[\"]", ""))
.map(s -> s.replaceAll("=", ":"))
.map(s -> s.replaceAll("interpolatedMessage", "message"))
.map(s -> s.replaceAll("\\{|\\}(, *)?", ""));
return stream.collect(Collectors.toList());
}
public class ApiErrorsListResponse {
private HttpStatus status;
private List errorMessage;
public ApiErrorsListResponse() {
}
...
}