mybati plus分页出现两个limit

问题描述

`提示:

例如:使用mybatis plus 出现两个limit
在这里插入图片描述

原因分析:

1.PageHelper 的使用问题,

使用ThreadLocal 缓存page对象,当线程再次进入的时候未清理page导致,具体源码有空再仔细分析下。

解决:

	PageHelper.clearPage();

手动执行清楚,或者保证pagehlper下一句就是sql执行语句。

2. sql里面已经含有limit

这个属于较低级的错误,解决办法自己想把

3.实例化多个分页拦截器

我遇到的和上面的不一样,项目使用了mybatisplus,

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>

版本是
mybati plus分页出现两个limit_第1张图片
3.4.1
mybatisplus3.4之后不建议使用pageinterceptor了

//    @Bean
//    public PaginationInterceptor paginationInterceptor() {
//        //启动BaseMapper分页
//        return new PaginationInterceptor();
//    }

在引入的common包里面新加了新的引入分页插件的bean
mybatisPlusInterceptor
mybati plus分页出现两个limit_第2张图片
这时候就有两个分页拦截器了
PaginationInterceptor 和mybatisPlusInterceptor ,mybatis对于拦截器是循环执行的也就是两个都会执行,就会生成两个limit

解决

注释掉原来已经弃用的bean注入,

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        //启动BaseMapper分页
        return new PaginationInterceptor();
    }

总结

总结了几种失效的情况,不对的可以指出,一起交流。

你可能感兴趣的:(mybatis,mybatis,java,开发语言)