Mybatis-plus 新版乐观锁插件导致数据权限失效

Blade 已结 1 1325
dp9212
dp9212 剑圣 2021-04-22 11:55

一、该问题的重现步骤是什么?

1. Mybatis-plus 启用新版的乐观锁注入方式,导致数据权限失效

2. 用Biz 的demo项目测试,只加新版乐观锁配置

3.旧版乐观锁配置方式不会导致数据权限失效


二、你期待的结果是什么?实际看到的又是什么?

旧版乐观锁配置方式已经失效,新版的怎么配置才能共存?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex 2.8.0  ,windows 10 / centos 7.9


四、请提供详细的错误堆栈信息,这很重要。


新版,红框中是会导致数据权限失效的配置

包路径:import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;

image.png


旧版

包路径:import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;

image.png


实体类是这个

包路径:import com.baomidou.mybatisplus.annotation.Version;

image.png


五、若有更多详细信息,请在下面提供。


/**
* 新版 Mybatis-Plus 中 分页和version 插件配置,乐观锁会导致数据权限失效
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
   MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
   // 乐观锁插件
   interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
   // DbType:数据库类型(根据类型获取应使用的分页方言)
   // 分页插件
   interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
   return interceptor;
}



/**
* 旧版 乐观锁插件,不会导致数据权限失效
* @return
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor(){
   return new OptimisticLockerInterceptor();
}




1条回答
  •  admin
    admin (最佳回答者)
    2021-04-22 15:50

    官方的数据权限插件也是放到了MybatisPluginInterceptor里,你看看是不是自己定义的bean把默认的覆盖了,所以没有了数据权限插件

    image.png

    0 讨论(1)
提交回复