代码虐我千百遍,我待代码如初恋
问题背景: springboot + mybatis, 多数据源, 事务无法回滚
网上查阅了各种博客
第一种说法(个人觉得这个真的非常规):
mapper.xml文件中 条件判断错误,类似这种
<if test="record.nmpa_id != null">nmpa_id,</if>
说是字段不存在,查之,非问题所在
其他说法:
常规@Transactional的相关错误,这一块的各种博客非常多,解释的也很详细,总结一下大致以下,不清楚的可以自行搜索.
1.方法必须是public
2.内部调用的问题
3.异常要抛出来,不要try catch 处理掉了
4.抛出的异常不支持回滚,unchecked什么的
然后就是各种我查询的配置的相关问题
1.启动类要加@EnableTransactionManagement
2.application.yml 要加
spring:
transaction:
rollback-on-commit-failure: true
3.要配置sqlsessionfactory
4.要配置transactionManage
问题的初始是,根本就没有事务,就算加了@transaction标签,也没有事务,
于是有人说不同的数据源要配不同的transactionManager,于是有了如下错误配置
//@Bean(name = TransManageType.SQLSERVER)
//@Primary
public DataSourceTransactionManager mssqlTransactionManager(@Qualifier("sql