使用PageHelper分页返回值为PageBean遇到的坑

天哪  这个坑掉的摔得我是真疼

首先我们写分页的时候一般都会在xxxxserviceImpl对应的方法中开头我们一般都会写:

PageHelper.startPage(参数.getPage(),参数.getPageSize());

然后就是吧啦吧啦一对逻辑  然后就是会出现以下几种情况:

1.如果查询返回的对象集合的泛型是vo 那么可以直接 

return new PageBean<>(查询返回结果集);

2.如果返回的对象集合的泛型是po或者是DO 那么需要将泛型为po,或者DO转换为泛型为vo的结果集

那么在创建泛型为vo的结果集是一定要new Page();不能 new Arraylist();

否则当在放回return new PageBean<>(查询返回结果集);时会导致没有数据  原因是因为

点击查看PageBean 可以发现其中的

list instanceof Page  

这行代码的判断  也就是说如果返回的结果集是数据Page的类型的话  就赋值数据 否则的话直接返回不走if判断那么这也就是没有查询出来数据的原因,那么返回的结果集怎么会是属于Page类型的呢,这也就是我们在方法开头写

PageHelper.startPage(productQuery.getPage(), productQuery.getSize());

这行代码的原因.

注意:

BeanUtils.copyProperties(po或者DO对象, vo对象);  这是将单个的po或者DO对象与vo对象进行内容拷贝,因此注意其中拷贝的对象的属性名称一定要相同
BeanPowerHelper.mapPartOverrider(返回结果集(泛型是po或者DO对象), 结果集(泛型是vo对象)); 这是返回结果集的拷贝,如果不写此行代码 那么分页显示中不显示数据总数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值