springboot项目多数据源导致事务报错问题

本文讲述了在SpringBoot项目中使用多数据源时遇到的事务报错问题,原因在于配置动态数据源导致事务处理不确定所使用的TransactionManager。解决方法是在需要事务的代码段添加特定的TransactionManager引用。作者分享了实际问题和解决策略。
摘要由CSDN通过智能技术生成

springboot项目多数据源导致事务报错问题

序言

之前有一篇讲了如何使用多数据源动态配置,这里遇到的一个问题和大家分享,在使用多数据源时,对数据进行更新和插入避免不了使用事务,使用多数据源可能导致下面的事务报错,分享给大家。

报错日志

下面是截取的部分报错日志
// An highlighted block
2023-10-19 11:26:04.893 ERROR [http-nio-8101-exec-2] o.a.c.c.C.[.[.[.[dispatcherServlet] 175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/api] threw exception [Request processing failed; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException:  No qualifying bean of type 'org.springframework.transaction.TransactionManager' available: expected single matching bean but found 4: 
c3reportTransactionManager,commonconfigTransactionManager,configimportTransactionManager,ctaTransactionManager] with root cause

报错日志

报错原因

报错原因为:配置动态多数据源导致事务处理不知道走哪一个TransactionManager,看图
原因图:多数据源动态配置
动态多数据源配置
事务使用

解决办法

解决办法相对简单,找到使用事务的地方,在Transactional注解内加入 transactionManager = "xxxTransactionManager" ,指向对应的事务就可以了,具体看图。

解决办法

序言

不是职业博主,只是记录自己用到的一些技术点或者问题相关的解决办法,以便于以后用到的时候查看,顺便分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值