首页 > 代码库 > spring事务没回滚
spring事务没回滚
最近遇见一个问题,用spring管理实务,在service层处理数据,保存数据时出现异常,但没有回滚,检查了一下,发现是因为我用try catch将异常进行捕获了,没有抛出导致的;默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。
处理发法一:捕获异常后,新生成runtimeexcetpion;
- try {
- userDao.save(user);
- userDao.update(user);
- } catch (Exception e) {
- logger.info("异常信息:"+e);
- throw new RuntimeException();
- }
处理方法二:捕获异常后,添加TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()手动回滚
- try {
- userDao.save(user);
- userDao.update(user);
- } catch (Exception e) {
- logger.info("异常信息:"+e);
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
处理方法三:不用try catch进行捕获;出现异常的方法会被spring管理而进行回滚
1. userDao.save(user);
2. userDao.update(user);
spring事务没回滚
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。