问题痛点
在查询分页的时候,我们一般用PageHelper(com.github.pagehelper
)。
在service层,我们使用mapper查询数据。service的返参一般是dto,但是mapper一般不返回dto(返回跟表一一对应的实体类,如eo,但service层返回如PageInfo)
这就需要将eo转成dto,问题点就在于,在PageHelper那行代码之后的查询结果并不是List,而是Page,Page是ArrayList的子类,查询的Page结果是带有许多跟分页相关的额外字段信息的,如果只是简单地把eo转成dto,会丢失这些分页字段(即永远只有一页,每页有list.size()条结果),如
// xxxMapper.listXxx 查出的是Page对象,因为重新定义了list,所以肯定是丢失了分页信息的
@Override
public PageInfo<XxxDto> queryByPage(String name) {
List<XxxDto> list = new ArrayList<>();
List<XxxEo> eoList = xxxMapper.listXxx(name);
for