日常踩坑-多数据源查询

在使用dynamic-datasource-spring-boot-starter处理新老平台数据迁移时,配置了正常的数据源切换。但在带有@Transactional注解的方法中,尽管声明查询老库,由于事务回滚策略,实际执行时依然锁定在新库数据源,导致表不存在的错误。

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

需求是新老平台交替 从老平台查询出数据插入到新平台的数据库中

使用dynamic-datasource-spring-boot-starter 多数据源时候

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>

配置文件正常配置新老库标识

对应的ServiceImpl层也对于指定方法声明了使用哪些数据源

当调用这个方法时虽然声明了是查询老库

对应方法打印查询也是old_zjtx的数据源 但是最后执行时候报错表不存在,经过费劲查询发现调用的方法插入数据方法上加上了@Transactional(rollbackFor = Exception.class) 导致切换数据源会失效,即使真的切换了对应的myabtis的查询还是锁住查询的是新库配置的默认数据源配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值