Open wangzhenhui1991 opened 7 years ago
上述两种方法中,目前成功通过测试,并且通过在执行过程中添加int a = 1/0;
引发异常测试,方法二成功回滚。
@Transactional
public Result doStuff(){
try {
// business logic...
int a = 1/0;
} catch (Exception ex) {
// trigger rollback programmatically
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
stackOverFlow
在spring中使用@Transactional注解时,如果在方法中使用了try{...}catch(){...},将无法触发transactional的rollback. 例如:
解决方法:
1.推荐方案:使用注解标记Exception
2.使用TransactionAspectSupport