使事务注解@Transactional和MybatisPlus的@DS多数据源切换同时生效

Posted by youthred on June 8, 2022

之前做项目的时候使用MyBatisPlus的多数据源dynamic-datasource-spring-boot-starter,发现无法使事务@Transactional和多数据源@DS注解同时生效。

查阅文档后得知须在事务注解上指定事务传播方式:

1
2
3
4
5
// org.springframework.transaction.annotation.Transactional
@Transactional(
    rollbackFor = Exception.class,
    propagation = Propagation.REQUIRES_NEW  // 改变事务的传播方式
)