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" ,指向对应的事务就可以了,具体看图。
序言
不是职业博主,只是记录自己用到的一些技术点或者问题相关的解决办法,以便于以后用到的时候查看,顺便分享。