分页后发现Vo的两个属性count和properties丢失,对比后发现Po中没有这两个属性,在PO转VO
的计算中得到的这两个属性,所以猜测应该是类型匹配的问题导致的。
PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable)
使用 上述语句之后,即可完成分页动作
-
第一个坑,分页只会对第一个查询语句生效
-
第二个坑,如果需要将PO转换为VO,下文的voPage其实还是返回的poPage
个人分析:
Page对象在执行第一个分页语句的时候就已经生成成功,并且已经确定了Result[对用this]的泛型类型为Po,分页后的数据转换动作也只会转成Po,而不是代码里面设置的泛型Vo
public class Page<E> extends ArrayList<E> implements Closeable{
}
// 特别注意:此处的voPage返回的其实是poPage,泛型只在编译器有效,运行时的状态未知
PageInfo<Vo> voPage = PageMethod.getLocalPage().doSelectPageInfo(
() -> selectVoList(dto)
)
selectVoList(dto){
// 此处的list其实是一个继承自ArrayList的Page,见com.github.pagehelper.Page
list = selectPoList(dto)
eventListVos.forEach(e -> {
// PO转VO
});
}