参考自 ballcat
一键抵达:
Gitee
GitHub
场景
使用MyBatis Plus的selectPage方法进行分页查询之后,如果需要将Entity对象转换为Vo对象,需要从Page对象中取出集合列表,手动转换成Vo集合列表数据重新放进Page对象中。
取出集合
设置集合
集合属性
Page 自带的函数式转换接口
这个方法的主要作用是将当前的分页对象 IPage 中的记录,通过传入的 mapper 函数进行转换,最终返回一个新的分页对象 IPage,其中的记录类型是 R。
在这里,mapper 是一个函数,接收类型为 T(当前 IPage 的记录类型)的对象,然后返回类型为 R 的对象。通过 map 操作,对当前 IPage 中的每个记录应用这个 mapper 函数,将结果收集到一个新的 List 中。
最后,通过 setRecords 方法将新的记录列表设置到新的 IPage 对象中,并将其返回。
这个方法的灵活性在于,你可以根据具体的需求传入不同的 mapper 函数,实现不同类型的转换。这对于需要将数据库中的实体对象转换为展示层的对象(比如 DTO 或 VO)时非常有用。
传统方法
传统方法需要手动获取分页列表数据,转换为Vo分页列表数据之后重新放进去。
配合Mapstruct食用
通过方法引用直接一下转成Vo分页列表数据。
查看所引用的转换方法
原理也是非常的简单