zoukankan      html  css  js  c++  java
  • spring事务没回滚

          最近遇见一个问题,用spring管理实务,在service层处理数据,保存数据时出现异常,但没有回滚,检查了一下,发现是因为我用try catch将异常进行捕获了,没有抛出导致的;默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。 

    处理发法一:捕获异常后,新生成runtimeexcetpion;

    1. try {          
    2.         userDao.save(user);          
    3.         userDao.update(user);         
    4.        } catch (Exception e) {         
    5.         logger.info("异常信息:"+e);          
    6.         throw new RuntimeException();   
    7.           }     

     处理方法二:捕获异常后,添加TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()手动回滚

    1. try {          
    2.         userDao.save(user);          
    3.        userDao.update(user);        
    4.     } catch (Exception e) {          
    5.         logger.info("异常信息:"+e);          
    6.         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();         
    7.     }  

    处理方法三:不用try   catch进行捕获;出现异常的方法会被spring管理而进行回滚

             1.       userDao.save(user); 

             2.       userDao.update(user);

  • 相关阅读:
    如何“破解”系统分析员考试
    两道简单的入门题
    WPF调用OCX控件
    www.12306.cn是安抚群众心灵的吧?
    FileStream类操作字节和字节数组
    XML基本操作:创建增删改
    asp.net ajax回调函数
    XMLHttpRequest+WebForm模式(接口IHttpHandler)实现ajax
    文件读写操作
    asp.net 中AJAX回调模式(ICallbackEventHandler)
  • 原文地址:https://www.cnblogs.com/lidelin/p/7266280.html
Copyright © 2011-2022 走看看