1、你的传参对象的分页字段是pageNum和pageSize
今天测试一个接口,没有传递分页字段,但是后台还是进行了分页查询。这个是因为虽然没有传递分页查询,但是后台的参数对象中有pageNum和pageSize这两个字段。
只要你的传参对象的分页字段是pageNum和pageSize,你不需要调用PageHelper.startPage()
方法,pagehelper就会帮你实现分页,因为pageNum和pageSize是PageHelper.startPage()
方法的参数。
public static <E> Page<E> startPage(int pageNum, int pageSize) {
return startPage(pageNum, pageSize, true);
}
所以,为了避免这种情况的出现,请不要给你的分页字段起这两个名字。pageNumber和pageCount就很不错。
2、上一个PageHelper.startPage()
未被消费
简单来讲,你上面的代码调用了PageHelper.startPage()
方法,但是后面没有一个Mapper的查询方法来消费掉。所以你的这个查询就用到了上一个的分页。
注意,PageHelper.startPage()
方法调用以后,后面必须有一个Mapper的查询方法,必须被消费掉。否则会由于ThreadLocal的原因,当线程被其他方法调用时被分页。