0
  • 随着学习的加深,对于这个问题我有了个思路。

    思路1:

    jdbcTemplate操作的代码单独封装一个方法,加上事务

    mybatis操作单独封装一个方法,加上事务

    然后设置事务的传播行为,传播行为里面可以要求两个方法运行在同一个事务中


    思路2:

    jdbcTemplate 和 mybatis 都使用了同一个事务管理器DataSourceTransactionManager,理论上应该是可以做到同事务的,或许你可以从DataSourceTransactionManager上下手


    后来你怎么解决的这个问题?


    1314408005793603584  评论     打赏       ccTyL
    • CrTnil  回复 @ccTyL
      看我6.9的回答,对数据源事务动态代理数据源配置
      CrTnil 2022-09-26 10:59   回复 1365268693742907392
  • 简单的办法就是,用mybatis 替换掉jdbcTemplate。你jdbcTemplate无法也就是直接写sql拼参数,你大可把sql写到mybatis的 mapperXml中,这样就可以代替掉

    1314408005793603584  评论     打赏       ccTyL
    • CrTnil  回复 @ccTyL
      我知道这个,上面说了的,不难,但工作量比较大,因为涉及的sql比较多,并且涉及了的跨库查询
      CrTnil 2022-06-13 18:04   回复 1365268693742907392
  • 通过修改多数据源配置中默认的数据源为动态代理数据源TransactionAwareDataSourceProxy,并且将transactionManager使用的数据源也修改为代理数据源后问题修复。

    ps:目前看没什么问题,但没测试多数据源的情况下会不会有影响

    1365268693742907392  评论     打赏       CrTnil
    • ccTyL  回复 @CrTnil
      这种方式主要是解决 混合事务,还是多数据源 的问题
      ccTyL 2022-09-26 14:59   回复 1314408005793603584
    • CrTnil  回复 @ccTyL
      主要是混合事务难解决,多数据源只需要配置好绑定在一起就行,然后混合事务指定的数据源为多数据源
      CrTnil 2022-09-27 10:17   回复 1365268693742907392
    • ccTyL  回复 @CrTnil
      能不能细说下,或者给个示例代码
      ccTyL 2022-09-27 10:34   回复 1314408005793603584
    • ccTyL  回复 @CrTnil
      我这边是jpa和jdbcTemplate 混合使用了,事务管理器还不一样,但是放在同一个事务(service里面)方法里,好像还是能实现混合事务
      ccTyL 2022-09-27 10:35   回复 1314408005793603584
    • CrTnil  回复 @ccTyL
      事务本质是sql使用同一个数据库连接,可以去搜下AbstractRoutingDataSource,主要获取当前sql执行时的线程对象,然后将运行的与另一个做绑定,这边不同项目构造肯定是不一样的,具体可以去看看动态数据源切换,多数据源事务之类的文章,我当时也是一知半解,后面也没怎么关注过这边的东西了
      CrTnil 2022-09-27 13:26   回复 1365268693742907392
    • ccTyL  回复 @CrTnil
      你那边项目试试 https://www.sunofbeach.net/a/1574596789019873281 这个,是否可行
      ccTyL 2022-09-28 09:27   回复 1314408005793603584
  • 可以的,去搜一下相关的整合文章跟练一下,再改你的项目吧。

    1153952789488054272  评论     打赏       拉大锯
    • CrTnil  回复 @拉大锯
      看了几个,感觉都不是太好,而且在查询的时候会涉及到多数据源查询
      CrTnil 2022-06-09 10:19   回复 1365268693742907392
    • 拉大锯  回复 @CrTnil
      既然是挖的坑,你只好去天坑了。这也是你的工作内容之一。你不可能把事情干完了,然后没事做,天天摸鱼的。心怀感恩的心态,去填坑,填坑过程让你赚钱[捂脸]
      拉大锯 2022-06-09 11:18   回复 1153952789488054272
相关问题
幻影~ · 安卓
2024-04-26 19:25 1 4
deanhu · AOSP
2024-04-25 21:53 3 10
幻影~ · 提问
2024-04-13 20:13 10 2
幻影~ · 找工作
2024-04-07 10:44 16 2
幻影~ · 问题
2024-03-31 17:20 7 2
TONYGFX · AOSP
2024-03-28 17:11 4 2