问题描述:

org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only

问题分析:

1、嵌套的两个方法都加了@Transaction注解,事务嵌套导致了报错。

@Transactional
public void test1(){test2();
}
@Transactional
public void test2(){double n=1/0;
}

解决办法:

具体需求分为以下3种情况。

(1)仅仅解决这个报错,去掉其中一个方法的@Transaction注解。

public void test1(){test2();
}
@Transactional
public void test2(){double n=1/0;
}

(2)不想去掉两个方法的@Transaction注解,因为这两个方法可能需要单独调用,但是里面的方法报错,两个事务都需要回滚。这时候需要针对里面的方法报错进行手动回滚事务。

@Transactional
public void test1(){int n=1/0;try{test2();}catch(Exception e){e.printStackTrace();TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();}
}
@Transactional
public void test2(){double n=1/0;
}

(3)不想去掉两个方法的@Transaction注解,因为这两个方法可能需要单独调用,但是里面的方法报错时仅仅回滚里面的那层事务,而外面的方法不受影响。这时候需要针对外面的方法报错进行手动回滚事务。

@Transactional
public void test1(){try{int n=1/0;try{test2();}catch(Exception e){e.printStackTrace();}}catch(Exception e){e.printStackTrace();TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();}
}@Transactional
public void test2(){double n=1/0;
}

旭东怪的个人空间_哔哩哔哩_Bilibili旭东怪,人生低谷不可怕,可怕的是坚持不到人生转折点的那一天;旭东怪的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/484264966?spm_id_from=333.1007.0.0

Java Transaction silently rolled back because it has been marked as rollback-only问题解决相关推荐

  1. saveOrUpdate Transaction silently rolled back because it has been marked as rollback-only

    天坑 先说说我为什么报这个bug吧: 经过多次测试,是因为session调用saveOrUpdate方法的时候id的值传错然后就有下面的异常: org.springframework.transact ...

  2. Transaction silently rolled back because it has been marked as rollback-only

    出现这个错误的原因是事务双重回滚了. 模块间的相互调用时,被调用的模块有事务提交,在报错之后事务回滚,返回错误信息, 调用模块收到被调用模块的错误信息再一次进行事务回滚. 解决方法:在调用模块方法上挂 ...

  3. Transaction silently rolled back because it has been marked as rollback-only Spring事务嵌套问题

    A和B都有事务,A调用B,B中抛出了异常,A这边捕获B的异常,但是没有将异常抛出,导致A方法执行结束时,提交事务,出现了上述的错误. 同一个类,内部方法调用不走代理,spring基于注解的事务是基于代 ...

  4. 解决org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back beca

    文章目录 1. 复现错误 2. 分析错误 3. 分析spring的事务机制 3.1 入口程序 3.2 事务管理的主方法 3.3 细究各对象的获取 4. functionTwo方法抛异常后的回滚操作 5 ...

  5. Transaction has been rolled back because it has been marked as rollback

    框架采用的是spring管理声明式事务,这几天业务开发时遇到了点麻烦,记录下备忘. 场景:在Service类中使用子事务(saveponit)时,当子事务抛出异常后,此异常处理掉不继续往外抛,spri ...

  6. Spring事务 Transaction rolled back because it has been marked as rollback-only

    前言 使用Spring事务时,出现异常:org.springframework.transaction.UnexpectedRollbackException: Transaction rolled ...

  7. Transaction rolled back because it has been marked as rollback-only

    http://hsyd.iteye.com/blog/586772 错误信息: Transaction rolled back because it has been marked as rollba ...

  8. “Transaction rolled back because it has been marked as rollback-only”

    spring的声明事务提供了强大功能,让我们把业务关注和非业务关注的东西又分离开了.好东西的使用,总是需要有代价的.使用声明事务的时候,一 个不小心经常会碰到"Transaction rol ...

  9. 【Spring】21、用spring目标对象处理Transaction rolled back because it has been marked as rollback-only...

    在使用spring做事务管理时,很多人都会遇到这样一段异常: org.springframework.transaction.UnexpectedRollbackException: Transact ...

最新文章

  1. 【Mysql 学习路线图】
  2. 20100422.C#.const VS readonly
  3. js修改video的source_利用 javascript MediaSource 将 HTML video标签的src转成加载blob
  4. How to change the text color in the terminal
  5. springboot获取项目路径_springboot学习
  6. pythongui项目实例_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...
  7. C++ 从入门到入土(English Version) Section 1:Gates, Circuits and Boolean Algebra
  8. 开启 TLS 1.3 加密协议,极速 HTTPS 体验
  9. python直方图均衡_python 简单图像处理(8) 直方图均衡化
  10. 幸运彩票 分数 15作者 陈越单位 浙江大学
  11. WeWork上演宫斗大戏,这个市还上吗?
  12. [动态系统的建模与分析]15_伯德图,bode图,为什么是20logM?分贝又是什么?
  13. Vue使用axios处理后端数据流,导出excel
  14. Python:实现SCC的Kosaraju算法(附完整源码)
  15. AWS KMS加密和解密
  16. 《后盾网Thinkphp5博客项目实战》最全
  17. Android存储系统-MountService 和vold 对外置存储的管理(2)
  18. 深入理解Java7.pdf
  19. JQueryDOM和遍历
  20. TypesScript类型注解

热门文章

  1. 翻译:Panda3D Manual/V. Programming with Panda/E. Camera Control
  2. fpga串口打印计数值作业
  3. 广西规范市场主体信息归集公示运用 推进社会信用体系建设
  4. Scala基础教程--10--数组列表与函数式编程
  5. Android状态栏微技巧,带你真正理解沉浸式模式
  6. Vue DevTools `Devtools inspection is not available` 使用问题
  7. (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  8. Python零基础到精通-高级篇
  9. 硬件程序员和软件开发程序员相比,哪一个就业发展前景比较好呢?
  10. 关于基于Linux的电子词典的编写