今天的一个测试中使用到了多数据源,之前我写过一篇springBoot配置多数据源的文章,不知道怎么配置的小伙伴可以先去看一下下面的连接,之前就简单测试了一下没有用到事务,但今天的测试中出现了问题,我明明在类上指明了数据源,但是我在操作数据库的时候还是找的我的主数据源在SpringBoot项目中配置动态数据源_t梧桐树t的博客-CSDN博客_springboot配置动态数据源
?报错信息:在我的主数源的数据库中没有找到要操作的表
于是经过一番查找,发现是因为,@Transactional注解的问题,这里我们需要在内部方法在开启一个事务,这个事务需要是一个新的事务,@Transactional注解中需要指明propagation = Propagation.REQUIRES_NEW 属性,其意思是,在执行此方法时,挂起外部事务,重新创建一个新的事务
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
?
?另外还有一个问题,是在我部署到tomcat的时候遇到的,在idea中运行的好好的没有任何问题,部署到tomcat的时候发现在启动mybatis的时候系统报错,项目无法起来,经研究发现,多数据源的依赖版本问题,后将版本升级至3.5.1后解决问题
<!--多数据源依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
|