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

51 阅读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;
}