Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.5k views
in Technique[技术] by (71.8m points)

hibernate - Exception handling in Spring Boot with JPA

I've made a class that is annotated with @ControllerAdvice to catch Exceptions.

When I do get a TransactionSystemException because I do not match my bean validation I want to know which values of my model are not correct. This is my method:

@ExceptionHandler(value = {TransactionSystemException.class})
  public ResponseEntity<Object> handleTransactionSystemException(
      TransactionSystemException transactionSystemException) {
    LOGGER.error(
        "Error in Hibernate transaction: "
            + transactionSystemException.getRootCause().getMessage());
    return new ResponseEntity<>(
        transactionSystemException.getRootCause().getMessage(), HttpStatus.BAD_REQUEST);
}

My console output will be:

List of constraint violations:[
    ConstraintViolationImpl{interpolatedMessage='Description must be between 10 and 1000 characters', propertyPath=description, rootBeanClass=class edu.fontys.cdb.models.AccountabilityModel, messageTemplate='Description must be between 10 and 1000 characters'}
]

But there might be a scenario that contains two constraint violations. Am I approaching this in the correct way?

Code of my method that throws the error:

public AccountabilityModel saveAccountabilityModel(AccountabilityModel accountabilityModel)
      throws IllegalArgumentException, ConstraintViolationException, TransactionSystemException {

    if (accountabilityModel == null) {
      throw new IllegalArgumentException("Verantwoordingsmodel heeft de waarde NULL.");
    }

    accountabilityModel.setCreationDate(Calendar.getInstance().getTime());
    return accountabilityModelDAO.saveEducationModel(accountabilityModel);
  }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...