@DS数据源切换失败-多数据源事务

文章讲述了在SpringDataJPA中,使用Transactional注解后数据源切换失败的问题,解决方法是采用DSTransactional注解。同时提到了@Transactional可能导致死锁的风险以及不同版本对@DS注解的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因:@DS原本有效,加上@Transactional注解后发现报错,后检测是数据源切换失败。

原因:@Transactional在service层已经创建,此时数据源已经确认为默认的主数据源,再进入mapper进行数据操作时,@DS注解失效。

解决方案:
站在巨人肩膀上开发,使用@DSTransactional注解即可,此注解可以在保证切换数据源的前提下创建事务,实测简单业务没问题。(暂时没搞明白如何手动回滚)

注意:
1.参考有的文章备注了不可用@Transactional同用,可能造成死锁,未测试,不建议尝试。
2.该注解版本在3.2.1以上版本可用。
3.版本在3.4之前要mapper必须要加@DS注解配置数据源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值