java.util.ArrayList cannot be cast to com.github.pagehelper.Page

本文介绍了使用 PageHelper 实现分页功能时需要注意的两种常见情况:一是 PageHelper 和查询语句之间的 SQL 执行顺序;二是多数据源环境下,如何为未被默认配置分页拦截的 SqlSessionFactory 添加 PageInterceptor 插件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我遇到过两种情况:
第一种是:在Pagehelper和查询语句之间有其他sql

  PageHelper.startPage(pageNum, pageSize, true);
  XXXMapper.xxxx
  Page<> page= (Page<>)TestMapper.query( );

改成

  XXXMapper.xxxx
  PageHelper.startPage(pageNum, pageSize, true);
  Page<> page= (Page<>)TestMapper.query( );

或者

  PageHelper.startPage(pageNum, pageSize, true);
  Page<> page= (Page<>)TestMapper.query( );
  XXXMapper.xxxx

第二种情况:某种多数据源的情况下,我的情况是分页插件spring只给了@Primary声明的SqlSessionFactory做了分页拦截

其他的SqlSessionFactory并没有,需要自己配置(下面是我某个老大解决的)。

 PageInterceptor plugin = new PageInterceptor();
        Properties properties = new Properties();
        properties.setProperty("reasonable", "true");
        properties.setProperty("supportMethodsArguments", "true");
        properties.setProperty("returnPageInfo", "check");
        properties.setProperty("params", "count=countSql");
        plugin.setProperties(properties);
factoryBean.setPlugins(new Interceptor[]{plugin});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值