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

直接上代码了:

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;
    }
 

 

 


版权声明:本文为qq_32784303原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。