Spring 事务异常 UnexpectedRollbackException

news/2025/1/13 2:50:47/

出现原因

Spring 框架的默认事务传播方式是 PROPAGATION_REQUIRED (内层事务加入外层事务中)

在内层事务因异常结束时, Spring 会把事务标记为 rollback-only. 这时如果外层事务 catch 捕捉了异常 e, 那么外层事务方法还会继续执行代码, 直到外层事务结束.

Spring 发现事务已经被标记为 rollback-only, 外层方法却正常执行成功, 这时 Spring 就会抛出 UnexpectedRollbackException

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

解决方案

  1. 希望内层事务抛出异常时 中断程序执行, 在外层事务的 catch 代码块中继续抛出异常 e
  2. 如果希望程序正常执行完, 并且希望外层事务结束时 全部提交, 则在内层事务方法中将异常 e 捕获并处理
  3. 如果希望 内层事务回滚, 但不影响外层事务提交, 需要将内层事务的传播方式指定为 PROPAGATION_NESTED. (ps:PROPAGATION_NESTED 基于数据库 savepoint 实现的嵌套事务, 外层事务的提交和回滚能够控制嵌内层事务, 而内层事务报错时, 可以返回原始 savepoint, 外层事务可以继续提交.

http://www.ppmy.cn/news/571345.html

相关文章

神经网络原理(2)

斯坦福大学的印度学生、机器学习爱好者 PararthShah 在2012年12月22日的使用买芒果的例子解释了神经网络,简单来说就是:如果你需要选芒果,但不知道什么样的芒果最好吃,一个简单粗暴的方法是尝遍所有的芒果,然后总结出个…

w7计算机应用放大按键,Win7窗口最大化和最小化快捷键是什么

Win7窗口最大化和最小化快捷键是什么 Win7有很多快捷键,你都知道多少呢?今天小编给大家科普的是win7窗口最大化和最小化快捷键,下面就一起来了解看看吧! Windows 键 方向键“↑” 使当前使用的窗口最大化。 Windows 键 方向键“…

Gimp 2.8 Photoshop快键键配置

要在Gimp 2.8中获得类似于Photoshop中的键盘快捷键,请下载此文件:menurc 。 然后将menurc文件复制到这个位置: ~/.gimp-2.8 终端中这样操作: wget https://blog.mc2.pub/tools/menurc cp menurc ~/.gimp-2.8

设计(二) | PS功能快捷键(全)

目录 一、功能说明二、文件三、编辑四、图象五、图层六、选择七、滤镜八、视图九、窗口十、帮助十一、文件操作十二、编辑操作十三、图像调整十四、图层操作十五、图层混合模式十六、视图操作 一、功能说明 1 .新建画布(快捷键ctrln) ①分辨率&#xff…

Photo Shop 操作基本快捷键

Photo Shop 操作基本快捷键 一、编辑操作 还原/重做前一步操作 【Ctrl】【Z】还原两步以上操作 【Ctrl】【Alt】【Z】重做两步以上操作 【Ctrl】【Shift】【Z】剪切选取的图像或路径 【Ctrl】【X】或【F2】拷贝选取的图像或路径 【Ctrl】【C】合并拷贝 【Ctrl】【Shift】【C】…

计算机ps移动是什么键,ps快捷键都有哪些 移动工具V等

1、移动工具【V】 2、矩形选框工具、椭圆选框工具【M】 3、套索工具、多边形套索工具、磁性套索工具【L】 4、快速选择工具、魔棒工具【W】 5、裁剪工具、透视裁剪工具、切片工具、切片选择工具【C】 6、吸管工具、3D材质吸管工具、颜色取样器工具、标尺工具、注释工具、计数工…

3dsmax2018可编辑多边形常用操作及部分快捷键

切换可编辑多边形的次层级模式:数字键1(顶点)、2(边)、3(边界)、4(多边形)、5(元素) 顶点模式下: Ctrl/Alt鼠标左键:加/…

google chrome F11全屏快捷键

google chrome 快捷键 标签页和窗口快捷键 CtrlN 打开新窗口。 CtrlT 打开新标签页。 CtrlShiftN 在隐身模式下打开新窗口。 按 CtrlO,然后选择文件。 在谷歌浏览器中打开计算机中的文件。 按住 Ctrl 键的同时点击链接。或用鼠标中键(或鼠标滚轮&#xf…