`
keney_oak
  • 浏览: 26349 次
社区版块
存档分类
最新评论

Spring 事物回滚

    博客分类:
  • java
阅读更多

有时候事物Spring 事物不回滚 注意点

假设 methodA 函数 里面调用除了自己的业务逻辑 还有 methodB 方法

 

1 想要回滚 try catch 中抛出 一个异常(默认是运行时异常)

2 增加 @Transactional(readOnly = false,rollbackFor = Exception.class)

3 两个方法都要抛出异常 要么 1自己捕获抛出,2要么向上抛出

 

/***
     * 第1业务个sql
     */
    @Transactional(readOnly = false,rollbackFor = Exception.class)
    public void methodA() {
        try {
            //update 修改SQL1业务
            String a = "UPDATE TABLE1 SET FirstName = 'Fred' WHERE LastName = 'Wilson'";
           
            this.methodB();//修改SQL2
        } catch (Exception e) {
            throw new RuntimeException();//抛出异常
        }
    }

 

 

    /**
     * 第二个业务sql
     */
    public void methodB() {
        try {
            // update 修改SQL2业务
            String b = "UPDATE TABLE2 SET FirstName = 'Fred' WHERE LastName = 'Wilson'";
        } catch (Exception e) {
            throw new RuntimeException(e);//抛出异常
        }
    }

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics