RuntimeEception中比如空指针异常这种不受检的异常会回滚,
Exception中的InterruptedException和IOException这种受检异常不会回滚,
需要写成@Transactional(rollbackFor={Exception.class,其他异常})
该属性用于设置需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,则进行事务回滚。例如:
指定单一异常类:@Transactional(rollbackFor=RuntimeException.class)
指定多个异常类:@Transactional(rollbackFor={RuntimeException.class, Exception.class})
网友评论