在MyBatis-Plus整合dynamic-datasource @DS失效

因为是事务导致的

 

解决方案:

1.删除事务

2.使用分布式事务

3.修改事务的传播机制

3.使用DS的本地事务 @DSTransactional 但切记不可和Spring的事务共存

 

附传播机制

事务传播行为类型

                        
                        

说明

                        
                        

PROPAGATION_REQUIRED

                        
                        

如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。

                        
                        

PROPAGATION_SUPPORTS

                        
                        

支持当前事务,如果当前没有事务,就以非事务方式执行。

                        
                        

PROPAGATION_MANDATORY

                        
                        

使用当前的事务,如果当前没有事务,就抛出异常。

                        
                        

PROPAGATION_REQUIRES_NEW

                        
                        

新建事务,如果当前存在事务,把当前事务挂起。

                        
                        

PROPAGATION_NOT_SUPPORTED

                        
                        

以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

                        
                        

PROPAGATION_NEVER

                        
                        

以非事务方式执行,如果当前存在事务,则抛出异常。

                        
                        

PROPAGATION_NESTED

                        
                        

如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

                        
posted @ 2021-11-23 13:23  洋三岁  阅读(1846)  评论(0编辑  收藏  举报
友情链接: 梦想农夫