if (!documentList.isEmpty()) { List<Long> documentIdList = documentList.stream().map(Document::getCateId).collect(Collectors.toList()); Map<Long, Cate> cateMap = cateMapper.selectBatchIds(documentIdList).stream().collect(Collectors.toMap(Cate::getId, e -> e, (e1, e2) -> e2)); for (Document documentItem : documentList) { documentItem.setCate(cateMap.get(documentItem.getCateId())); }
时间: 2024-04-15 11:24:31 浏览: 108
DocumentList简单示例
这段代码的作用是根据文档列表中的分类ID批量查询对应的分类信息,并将查询结果设置到每个文档对象的 cate 属性中。
首先,通过判断 documentList 是否为空,进入条件判断的代码块。
然后,使用 stream() 方法将 documentList 转换为流,并使用 map() 方法获取文档列表中的所有分类ID,存储到 documentIdList 集合中。
接着,使用 cateMapper.selectBatchIds() 方法批量查询文档分类信息,查询条件为 documentIdList 中的分类ID。查询结果以流的形式返回,并使用 collect() 方法将结果转换为 Map<Long, Cate> 类型,其中键为分类ID,值为对应的分类对象。
接下来,通过 for 循环遍历文档列表中的每个文档对象。通过 cateMap.get() 方法根据文档的分类ID获取对应的分类对象,并将获取到的分类对象设置到文档对象的 cate 属性中。
这样,通过批量查询并设置分类信息后,文档对象的 cate 属性就被正确地赋值了。
最后,整个 for 循环结束后,文档列表中的每个文档对象都被设置了正确的分类信息。
阅读全文