Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.4k 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 Answer

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...