spring 事务的回滚注意问题

spring 可以通过多种方式配置事务,如果使用编程式的 hibernate的 TempleTranslate

如果捕获则需要显式回滚,没有捕获,spring将自动处理

一般情况下,我们不需要对service层的异常做什么处理,类似于事务回滚,spring也会帮我们做了。但是一旦我们自己需要catch一些异常,自己做了处理,也是可以的,但是。但是。我们不由得联想到,spring还会捕获到这些异常吗?万一捕获不到,事务回滚就不会执行,就会出现脏数据。。。。。这样的后果,心理感觉很猥琐啊!

而事实就是如此!你会发现,如果你自己捕获了异常,spring的自动事务回滚功 能消失了!

实例2
        public void delete(final Integer[]ids)throws Exception{
        transactionTemplate.execute(new TransactionCallback(){
            //接口方法
            public Object doInTransaction(TransactionStatus status) {
                try{
                    //业务逻辑
                    }
                }catch(Exception e){
                    status.setRollbackOnly();
                    e.printStackTrace();
                }
                return null;
            }
           
        });
 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年11月    »
123
45678910
11121314151617
18192021222324
252627282930
搜索
标签列表
网站分类
最新留言
    文章归档
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.闽ICP备11018667号-2