如何避免org.springframework.transaction.UnexpectedRollbackException?

2024-04-26

当一个方法被@Transactional注解并且出现运行时异常时,spring会吃掉该异常并抛出:

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

如何避免这种“一般”异常并传播原始异常,但保持回滚?

Thanks.


org.springframework.transaction.UnexpectedRollbackException: 事务静默回滚,因为它已被标记为 仅回滚

如果您有外部设备,则通常会发生这种情况@Transactional方法调用内部@Transactional方法。当内部方法抛出异常,但外部方法捕获该异常并正常返回时,Spring会感到困惑,不知道是否应该回滚或提交事务,因为这两种方法相互矛盾。 (内部方法说它要回滚,但外部方法说它要提交)

所以,检查是否有任何外部@Transactional捕获异常的方法。如果是,则从外部方法重新抛出该异常,以便整个事务将回滚。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何避免org.springframework.transaction.UnexpectedRollbackException? 的相关文章

随机推荐

  • 散列到分组数组中

    我对 ruby 的经验不是很丰富 所以我正在努力格式化一段数据 我有这个哈希 其中包含一些具有相同值的键 例如 key gt value1 key2 gt value2 key3 gt value3 key4 gt value1 key5
  • 如何修补 Eclipse 插件?

    我想修复 eclipse 插件 WTP 的官方插件 中的错误 我在本地更改了源代码 对其进行了调试 一切都很好 现在我想将此更改传播到我的 Eclipse 安装 但我遇到了问题 似乎有不止一种方法可以实现这一目标 例如 这个网站 http
  • 从闪亮发送电子邮件

    我是一位新的 Shiny 用户 我有兴趣创建一个 Web 应用程序 访问者可以在其中填写一些问题 取决于随机 R 数据 并可以提交它们 我的问题是找到通过电子邮件向我发送该信息的方法 例如 每次他们提交数据时 我是一名大学讲师 我认为这是评
  • Mac OS X 上的 scp 问题:scp 不喜欢文件名中的空格,“\”修复不起作用

    我正在尝试使用 scp 在两台 Mac 操作系统 10 6 8 之间传输文件 但它失败了 因为我的目录 文件名中有空格 我无法更改目录 文件名 当我使用 Mac 在终端中工作时 我经常使用 符号来表示空格 然而 在这种情况下 它不起作用 我
  • 以编程方式将网页保存到静态 HTML 文件的最佳方法

    我做的研究越多 前景就越黯淡 我正在尝试使用 Python 进行平面保存或静态保存网页 这意味着将所有样式合并到内联属性 并将所有链接更改为绝对 URL 我尝试过几乎所有免费的转换网站 api 甚至 github 上的库 没有一个是那么令人
  • URL 扩展隐藏:重写与重定向

    我已经阅读了很多问题和答案 但我无法决定哪一个更好或如何使用这些扩展隐藏方式的组合 我想要的是就是有一个像这样的url重写堆栈溢出 那么我还应该做什么才能遵守这些规则 url example com file anyEXT show con
  • 从哪里可以获得 Microsoft.DirectX.dll?

    我不知道从哪里得到它 只是微软的 SDK 吗 如果是 如何将其添加到我的项目 Visual Studios 2010 C 中 托管 DirectX 包装器已过时 不再包含在 DirectX SDK 中 最后一个版本是 2010 年 2 月发
  • null对象的hashcode是如何计算的

    由于 HashMap 和 HashSet 允许空对象 那么这些 空 对象的哈希值是多少 java中如何计算 处理它 openJDK 内置的 HashMap 只是将空引用放入数组中用于保存条目的第一个存储桶中 409 private V pu
  • java中引用和对象有什么区别? [复制]

    这个问题在这里已经有答案了 我有类 GUI 所以我可以创建这样的对象 GUI g1 new GUI 和一个像这样的引用变量 GUI g2 现在据我所知 g2 是一个引用变量 它引用 GUI 类 而 g1 是 GUI 类的对象 g1和g2有什
  • 用户名作为路径

    我希望将用户名作为 URL 的一部分 例如mysite com 用户名 这应该重定向到用户配置文件 我用简介2 http drupal org project profile2 and Pathauto http drupal org pr
  • 未选中选项卡下划线的 TabLayout 颜色

    在此图中 在选项卡布局中 选定的选项卡栏下划线颜色为紫色 并且文本 我搜索未选择的标签栏 但找不到未选择的标签栏下划线 我想在选择某个选项卡时更改颜色 更改未选择的选项卡下划线颜色 如果你知道这件事 你会帮助我吗 在drawable文件夹中
  • React Hook“useState”在函数“setResults”中调用,该函数既不是 React 函数组件,也不是自定义 React Hook 函数

    我试图在一个功能组件中进行 API 调用 该组件是一个反应钩子 并根据结果重新渲染组件的内容 这是代码 调用 API 的组件 function IntegrationDownshift render
  • Delphi:MDI应用程序中的最大化子窗体

    如何最大化仅适合客户区而不适合整个父窗口的子窗口 我不希望子窗口在父窗口的主菜单或其他控件下消失 我有这个代码 procedure WMSIZE var Msg TMessage message WM SIZE procedure TFor
  • 使用记忆化与不使用记忆化的递归

    我在学校做的作业是用递归计算加泰罗尼亚数 第一个没有记忆 def catalan rec n res 0 if n 0 return 1 else for i in range n res catalan rec i catalan rec
  • 如何链接到grafana表中的外部站点

    如何创建包含外部站点超链接的单元格列 我可以嵌入文本并通过数据源传递它 不幸的是 grafana 不会将纯文本转换为超链接 例如 我可以使用以下文本创建一个单元格 https www google com search q hot dogs
  • 未捕获错误:INVALID_STATE_ERR:带有 webkitEnterFullScreen 的 DOM 异常 11

    document ready function var url video mp4 var video document createElement video video attr width 300 video attr height
  • 某些操作不会调用自定义 ContactsDirectoryProvider

    我已经实现了自定义 ContactsDirectoryProvider 当联系人或拨号器应用程序使用以下形式的 URI 搜索联系人时 它可以正常工作内容 com android contacts data phones filter 但是
  • Camel Rest URI 使用后缀

    所以我有一个使用 Camel 的 REST Web 服务 它工作得很好 只是如果我用后缀调用我的 URI 我会得到相同的响应 而不是 404 休息配置 restConfiguration component restlet bindingM
  • npm install 不起作用(没有错误),但 npm install 起作用

    关于 Node 和 npm 的菜鸟问题 我有一个 package json 文件 其中包含我想要使用 npm install 进行安装的依赖项列表 当我运行命令时 没有任何反应 我什至没有收到错误 什么也没有 但如果我尝试从列表中安装单个包
  • 如何避免org.springframework.transaction.UnexpectedRollbackException?

    当一个方法被 Transactional注解并且出现运行时异常时 spring会吃掉该异常并抛出 org springframework transaction UnexpectedRollbackException Transaction