MyBatis在多数据源事务失效情况
1、项目层次结构
(1) dao服务
(2) 业务服务
(3) 业务服务 依赖 dao服务
2、背景
(1) 业务服务 同 dao 服务注入同一个数据源
(2) 业务服务数据源上有 @Primary 注解, 声明业务服务数据源为默认数据源
(3) 业务服务 dao服务 配置数据源扫描的包路径不同
3、情况
失效情况这里暂不提及常见的情况, 常见情况请自行搜索
业务服务中 有 @Primary 在业务服务执行的dao中SQL 用到 @Transactional的话 需要显著声明dao中的事务管理器, 否则事务不会被开启。
此时如果执行的是业务服务的SQL, 只声明@Transactional 是不会回滚的
失效代码
// 失效代码
@Transactional(rollbackFor = Exception.class)
public