mybatis-plus 分页类型转换工具类
前言
用mybatis-plus 的分页对象的时候,因为用mybatis-puls 查询出来的分页对象的records里的泛型是实体,有时候需要将实体转换为前端展示的对象,所有写了一个分页数据的类型转换工具,解决这个问题。
代码示例
public IPage<TransparentGeologicalVO> pageList(TransparentGeologicalQueryDTO query) { IPage<TransparentGeological> page=this.lambdaQuery() .like(StringUtil.isNotBlank(query.getName()),TransparentGeological::getName,query.getName()) .eq(Objects.nonNull(query.getWorkFaceId()),TransparentGeological::getWorkFaceId,query.getWorkFaceId()) .orderByDesc(TransparentGeological::getCreateTime) .page(Condition.getPage(query)); IPage<TransparentGeologicalVO> result= PageUtil.copy(page,TransparentGeologicalVO.class); result.getRecords().forEach(e->e.setWorkFaceName(WorkFaceCache.getWorkFaceName(e.getWorkFaceId()))); return result; }
pom文件引入mybatis-pius依赖
<!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>
分页转换工具如下
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springblade.core.tool.utils.BeanUtil; import java.util.List; public class PageUtil { /** * @Description:转换为 IPage 对象 * @Author: tarzan * @Date: 2019/10/31 9:40 */ public static <T, E> IPage<T> copy(IPage page, List<E> sourceList, Class<T> targetClazz) { IPage pageResult = new Page(page.getCurrent(),page.getSize(),page.getTotal()); pageResult.setPages(page.getPages()); List<T> records = BeanUtil.copy(sourceList, targetClazz); pageResult.setRecords(records); return pageResult; } public static <T, E> IPage<T> copy(IPage page, Class<T> targetClazz) { return copy(page,page.getRecords(),targetClazz); }
到此这篇关于mybatis-plus 分页类型转换工具类的文章就介绍到这了,更多相关mybatis-plus 分页工具类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)