spring-boot - @Transaction 不能跨不同服务中的多个方法工作
问题描述
我们有一个使用 JDBCTemplate 的 Spring Boot 应用程序,并且有 4 个服务调用(每个来自不同的服务),每个服务调用都对数据库进行了更新。当我们用 @Transaction 注释包装方法时,每个单独的服务调用都是事务性的,但是第三个服务调用中的异常不会回滚前 2 中所做的事情。(或者第二个中的异常不会回滚第一个一个等等...)
澄清:例外是运行时
编辑:我们已经尝试使用 @Transactional(propagation = Propagation.REQUIRED) ,它似乎应该在调用中保持事务,但它仍然无法正常工作。
解决方案:在结束事务的服务之一中有一个截断表。我们将把它改为删除,现在一切都在事务性地工作。
解决方案
推荐阅读
- performance - 记忆山中的时间局部性
- vim - Vim“无交换文件”
- ios - 谷歌身份验证时苹果应用被拒绝(元数据)
- java - 使用 Spring Boot 2 CXF Web 服务访问用户原理
- javascript - 如何进行递归 Promise 调用以作为 Javascript 中减少的返回?
- xaml - 在 Xamarin ListView 中呈现 ListViewItem 时出现问题
- docker - 如何修复 Docker sh 入口点中的“权限被拒绝”
- html - 图标不显示在按钮离子上
- java - 如何以编程方式从android应用程序的文件和文件夹中删除世界读/写权限?
- ios - iOS Firestore 可以将 `FieldValue.increment` 用于 Map 值吗?