SpringBoot @Transactional 事务,运行异常进行事务回滚方法

44 阅读1分钟

直接上代码了:

1.首先需要在方法体上加上@Transactional表示支持事务

2.如果异常被抓起之后,需要回滚只能手动回滚,否则事务会认为异常已经被处理,就不在进行回滚  

  @Autowired
AcpgiftMapper acpgiftMapper;
@Transactional
public int tests() {
Acpgift entity=new Acpgift();
entity.setPgnum(2);
entity.setContents("感谢");
acpgiftMapper.insert(entity);
try {
int i=1/0;//抛出异常
} catch (Exception e) {
//事务回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}    
return 0;
}

3.如果异常没有被抓起,则自动回滚

    @Transactional
public int tests() {
Acpgift entity=new Acpgift();
entity.setPgnum(2);
entity.setContents("感谢");
acpgiftMapper.insert(entity);
int i=1/0;//抛出异常,回滚
return 0;
}