有一天,公司需要用到数据权限,刚好使用 mybatis plus 3.4.1 后支持了数据权限的插件,可以对执行的sql进行拼接,中间也比较顺利,但偶然一次发现 ipage 分页的时候,没有拼接 数据权限 范围的sql,一开始以为是官方的bug。最后发现是初始化 mybatis-plus 的插件顺序问题,作为记录。要先初始化数据权限插件在初始化分页的插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加数据权限插件
DataPermissionInterceptor dataPermissionInterceptor = new DataPermissionInterceptor();
z // 添加自定义的数据权限处理器
dataPermissionInterceptor.setDataPermissionHandler(myDataPermissionHandler);
interceptor.addInnerInterceptor(dataPermissionInterceptor);
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
// 分页插件
interceptor.addInnerInterceptor(paginationInnerInterceptor);
// 乐观锁插件
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}