在使用Spring 事务(@Transactional())时,被事务管理的业务类方法中如果使用try...catch...来捕获异常的话,如果出现异常,事务不会回滚,这个时候我们可以手动回滚事务.如下:
//假设这是被事务管理的service类中的一个方法片段
try {
//业务逻辑
//出现异常
} catch (Exception e) {
e.printStackTrace();
//设置手动回滚
TransactionAspectSupport.currentTransactionStatus()
.setRollbackOnly();
}
//此时return语句能够执行
return xxx;