如题。
Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚。
如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚。
解决1,指定异常回滚
@Transactional(rollbackFor = MyException.class)
解决2,手动回滚(异常抛不抛都行)
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();