LLLeeves 2022-02-16 10:58 采纳率: 0%
浏览 1292
已结题

求解,Mybatis-Plus分页插件(MybatisPlusInterceptor)注入未生效,total 为0。

在配置类中已经配置了了 MybatisPlusInterceptor并且添加了PaginationInnerInterceptor,如下图所示
    @Bean("plusInterceptor")
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(){};
        PaginationInnerInterceptor p=  new PaginationInnerInterceptor();
        p.setDbType(DbType.MYSQL);
        p.setMaxLimit(10L);
        interceptor.addInnerInterceptor(p);
        return interceptor;
    }

同时 通过启动类代码 (如下)

 MybatisPlusInterceptor interceptor= (MybatisPlusInterceptor) ctx.getBean("plusInterceptor");
        List<InnerInterceptor> ins=interceptor.getInterceptors();
        ins.forEach(x->log.info(x.toString()));

日志输出bean 已经注入,并且拦截器已经添加。

img

分页部分代码:

            QueryWrapper<User> query = new QueryWrapper<>();
            query.lt("id", index);
            Page<User> pages = new Page<>((index/3), 3);
            UserMapper mapper = this.sqlSession.getMapper(UserMapper.class);
            IPage<User> ipages1 = mapper.selectPage(pages, query);
            log.info(String.valueOf(ipages1.getTotal()+"__"+ipages1.getSize()+"__"+ipages1.getPages()));
            return ipages1;

完整方法代码:

    @PostMapping("/user/{index}")
    public IPage<User> getUser(@PathVariable int index) {
        List<User> users = new ArrayList<>();
        if (index > 0) {
            QueryWrapper<User> query = new QueryWrapper<>();
            query.lt("id", index);
            Page<User> pages = new Page<>((index/3), 3);
            UserMapper mapper = this.sqlSession.getMapper(UserMapper.class);
            IPage<User> ipages1 = mapper.selectPage(pages, query);
            log.info(String.valueOf(ipages1.getTotal()+"__"+ipages1.getSize()+"__"+ipages1.getPages()));
            return ipages1;
        }
        return null;
    }

但是还是没有分页效果,SQL语句没有limit。

img

返回的 IPage json对象信息

img

  • 写回答

4条回答 默认 最新

  • LLLeeves 2022-02-17 21:49
    关注

    解决了, 目前发现是 MybatisPlusInterceptor 和 MybatisSqlSessionFactoryBean 有冲突,但是冲突的原因不知道,把MybatisSqlSessionFactoryBean 注释掉分页插件就生效了。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月17日
  • 修改了问题 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥20 和学习数据的传参方式,选择正确的传参方式有关
  • ¥15 这是网络安全里面的poem code
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路