springboot使用AOP切面配置hikari多数据源,new Thread时saveOrUpdate不能更新到数据库,不使用则正常? 5C

如题。

springboot使用AOP切面配置hikari多数据源,new Thread情况下方法saveOrUpdate不能更新到数据库,不使用则正常?

hikari多数据源,使用AOP方式进行数据源切换,新起线程的情况下更新方法执行,但是没有sql打印,也没有将数据更新到数据库,并且不报错,不用线程则可以

weixin_44149344
陆广阔 有没有人遇到这种问题啊?找了好久都没有解决方案,求助
5 个月之前 回复

2个回答

多线程导致事务失效,sql实际没有被commit

guangcaiwudong
Kevin.Y.K 回复陆广阔: 你的事务应该是加在方法上的吧,两个数据源的操作方法独立开,各用各的事务,这样只能确保数据能写入,但是不能保证事务的一致性,就跟两个独立的系统,A调用B,B写成功了,但是A失败了回滚。 你要想保证事务一致性,就要去看看分布式事务是怎么处理的,如Atomikos、XA、TCC等等
5 个月之前 回复
weixin_44149344
陆广阔 怎么解决呢?多数据源的事务在哪里可以设置?
5 个月之前 回复

spring事务管理器上下文保存在线程里面,new thread原来的上下文没了就没法提交事务了。
多数据源考虑分布式事务

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问