先说问题:我有一个A方法,里面调用了B,C等方法,B,C方法里都有插入操作,在发生错误时,没有回滚,事务失效了。
只针对双数据源(从mysql查询插入到oracle中),单数据源没有这么麻烦,后续会更新
解决办法:1 先看有没有加注解@Transactional,如果没加,请加上。
2.把A和B,C分开,B,C单独写一个类。
3.还需要在写一个save方法,调用B,C,A在调用save方法,注意:在save方法上加注解@Transactional
4.新建一个config文件夹,在config文件夹下新建DataSourceConfig1和DataSourceConfig2
DataSourceConfig1的内容是:
@Configuration
@MapperScan(basePackages = “com.inspur.wfmigration.org.datamigration.dao.db1”, sqlSessionFactoryRef = “db1SqlSessionFactory”)
public class DataSourceConfig1 {
@Primary // 表