Spring 事务手动回滚: 用于事务管理的业务方法中使用了try...catch...的事务回滚

在使用Spring 事务(@Transactional())时,被事务管理的业务类方法中如果使用try...catch...来捕获异常的话,如果出现异常,事务不会回滚,这个时候我们可以手动回滚事务.如下:

        //假设这是被事务管理的service类中的一个方法片段
        try {
            //业务逻辑
            //出现异常
        } catch (Exception e) {
            e.printStackTrace();
            //设置手动回滚
            TransactionAspectSupport.currentTransactionStatus()
                    .setRollbackOnly();
        }
        //此时return语句能够执行
        return xxx;

 

你可能感兴趣的:(Spring)