Springboot项目PageHelper升级到5.3.2版本分页查询失效

Springboot项目PageHelper升级到5.3.2版本分页查询失效

线上问题排查

文章目录

  • Springboot项目PageHelper升级到5.3.2版本分页查询失效

背景:现象是gateway网关报错 FluxOnAssembly$OnAssemblyException,经过排查,发现是分页查询时返回了2000多条数据,导致数据量超出了网关限制,从而抛错。也就是pageHelper分页查询未生效

原因pageHelper 升级到5.3.2版本后配置方式有改变

  • 低版本的配置方式如下

  • @Configuration
    public class PageHelperConfig {
        @Bean
        public PageHelper pageHelper() {
            PageHelper pageHelper = new PageHelper();
            Properties properties = new Properties();
            properties.setProperty("offsetAsPageNum", "true");
            properties.setProperty("rowBoundsWithCount", "true");
            properties.setProperty("reasonable", "true");
            //配置mysql数据库的方言
            properties.setProperty("dialect", "mysql");
            pageHelper.setProperties(properties);
            return pageHelper;
        }
    }
    

解决方法:

  • 将PageHelper改为通过PageInterceptor注册

  • @Configuration
    public class PageHelperConfig {
        @Bean
        public PageInterceptor pageInterceptor(){
            PageInterceptor pageInterceptor = new PageInterceptor();
            Properties properties = new Properties();
            properties.setProperty("offsetAsPageNum", "true");
            properties.setProperty("rowBoundsWithCount", "true");
            properties.setProperty("reasonable", "true");
            //配置mysql数据库的方言
            properties.setProperty("helperDialect", "mysql");
            pageInterceptor.setProperties(properties);
            return pageInterceptor;
        }
    }
    

你可能感兴趣的:(深入理解Spring生态,spring,boot,java,pagehelper,线上问题,分页失效)