跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于 springboot+mybatis 的事务管理问题
未分類
14 9 月 2020

关于 springboot+mybatis 的事务管理问题

关于 springboot+mybatis 的事务管理问题

資深大佬 : jiobanma 4

对事务不熟悉一直没有用过,所以问题可能会比较 rz !! 如果我在一个 controller 中有一个方法,要去删除数据流程是:先调用关联表的 service 去删除关联变的数据, 然后再去调用主表的 service 删除主表的数据。这两个删除方法存在于不同的 service 接口中。这个时候我该如何做到在这个流程中如果某一个删除出现问题,让该流程中改变的数据进行回滚?(在不改变 service 结构的情况下)

大佬有話說 (10)

  • 資深大佬 : dovme

    方法上加 @Transactional 注解

  • 資深大佬 : KevinBlandy

    互相调用的各个 Service 方法都添加 @Transactional 注解。

  • 資深大佬 : colincat

    抽离出来一个单独 service 添加 @Transactional

  • 資深大佬 : git00ll

    两个 service 的方法上都加上事务注解,默认是 REQUIRED,调用的第二个 service 会共享第一个 service 的事务,即使用同一条 jdbc 连接。

  • 主 資深大佬 : jiobanma

    @colincat #3 目前不能更改 service 的结构
    @KevinBlandy #2 不是互相调用,是同步调用两个 service

  • 資深大佬 : colincat

    @jiobanma 单独提取出来一个 component,因为 spring 事务是基于代理实现的,了解一下底层更加有助于编码

  • 資深大佬 : 1107139144

    把两个 service 里的方法整合在一个 service 。只 controller 里面调用一个 service

  • 主 資深大佬 : jiobanma

    @1107139144 #7 这个 service 结构目前不能变动,不过按照附言里的方式手动回滚和提交事务已经实现了

  • 資深大佬 : chen19

    两个 Service 方法都添加 @Transactional 注解,应该就可以了

  • 資深大佬 : sdrzlyz

    serviceA 直接调用 serviceB 的话,两者不会在同一个事务里。

    如果是 spring 的话,serviceA 先 getBean(ServiceB),然后再调用

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具