使用Mybatis-plus会分页首先调用总数sql,然后再调用查询列表的sql
部分情况下,生成的count的sql会有问题,比如我的sql是有group by,
查询条件QueryWrapper中还有order by排序条件,则生成的select count(*) from(sql) 就会报错
除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
这个时候可以自定义count方法解决,设置page.setCountId("xx")
@Override
public IPage<SplitExperimentType> selectAll(Page page) {
//指定自定义统计sql的方法名
page.setCountId("selectAll_COUNT");
return baseMapper.selectAll(page);
}
那么count就会使用我们mapper中selectAll_COUNT这个方法查询count
参考链接:mybatis-plus分页插件之count优化 - zhangzhiping35 - 博客园 (cnblogs.com)