项目场景:
提示:这里简述项目相关背景:
根据id获取name 获取不到
问题描述
进行下面操作时categoryName获取不到,打断点之后发现实在拷贝时出现异常
//分页查询
Page<Article> page = new Page<>(pageNum,pageSize);
page(page,lambdaQueryWrapper);
//查询categoryName
List<Article> articles = page.getRecords();
//categoryId去查询categoryName
//1for循环方法
for (Article article : articles) {//循环这个list集合
//获取到这个分类Id
Category category = categoryService.getById(article.getCategoryId());
article.setCategoryName(category.getName());
}
//封装查询结果
List<ArticleListVo> articleListVos = BeanCopyUtils.copyBeanList(page.getRecords(), ArticleListVo.class);
//拷贝主要根据类型和字段名去进行一个匹配,如果都相同的话就能拷贝过去
PageVo pageVo = new PageVo(articleListVos,page.getTotal());
return ResponseResult.okResult(pageVo);
原因分析:
拷贝时出现错误
拷贝主要根据类型和字段名去进行一个匹配,如果都相同的话就能拷贝过去,检查实体类和Vo之后发现Article实体里面的categoryName数据类型为String,ArticleVo里类型为Long,类型不匹配所以没有拷贝过来。
解决方案:
更改categoryName的数据类型,Article类和ArticleVo中保持一致就可以拷贝到了。