目 录CONTENT

文章目录

Mybatis Plus 分页使用-----坑--最终 Total 结果不正确

小张的探险日记
2022-03-18 / 0 评论 / 0 点赞 / 665 阅读 / 895 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

背景

使用了分页插件 + 租户插件的场景

如果先加入 分页插件会导致分页插件自动生成 count 查询的 sql 不会追加 and tenant_id =xxxx 的 sql 条件语句,最终 Total 结果不正确

需要按此,先加入租户插件,然后加入分页插件。

@Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();



        interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
            @Override
            public Expression getTenantId() {
                // 获取当前 tenantId
                return new LongValue(CurrentUser.get().getTenantId().toString());
            }

            @Override
            public boolean ignoreTable(String tableName) {
                if(hzBusinessValue.getIgnoreTableList() == null || hzBusinessValue.getIgnoreTableList().size() ==0){
                    return false;
                }
                for (int i = 0; i < hzBusinessValue.getIgnoreTableList().size(); i++) {
                    if(tableName.equalsIgnoreCase(hzBusinessValue.getIgnoreTableList().get(i))){
                        return true;
                    }
                }
                return false;
            }
        }));

        // 坑爹问题,先加入分页插件会导致 查询 分页的 count 时 租户插件不生效
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));

        return interceptor;
    }

0

评论区