java - 使用流替换值
问题描述
我有 Spring Data Entity,我在其中获得分页结果:
classItemsService.findAll(spec, pageable).map(classItemsMapper::toFullDTO);
使用 MapStrict 框架过滤从 API 返回的值:
@Mapper(config = BaseMapperConfig.class)
public interface ClassItemsMapper {
ClassItemsFullDTO toFullDTO(ClassItems classItems);
}
DTO:
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
public class ClassItemsFullDTO {
........
private String productVideo;
........
}
问题是我如何才能第二次替换从数据库返回的值,然后用一些硬编码的值替换。例如我想它应该是这样的:
Page<ClassItemsFullDTO> page = classItemsService.findAll(spec, pageable).map(classItemsMapper::toFullDTO).stream()
.forEach(classItemsFullDTO -> classItemsFullDTO.setProductVideo("unsubscribed"));
你能帮我解决这个问题吗?
现在我得到这个问题:
Required type: Page <ClassItemsFullDTO>
Provided: void
解决方案
Stream.forEach
方法不返回任何东西,即它返回void
. 所以你正在做的任务不适用于它。删除Page<ClassItemsFullDTO> page =
它会起作用。
如果您需要保留对结果的引用,我建议您不要使用Stream
:
Page<ClassItemsFullDTO> page = classItemsService.findAll(spec, pageable)
.map(classItemsMapper::toFullDTO);
page.forEach(dto -> dto.setProductVideo("unsubscribed"));
推荐阅读
- node.js - 如何让nodemon在崩溃时退出?
- memory - 使用 Box::from_raw() Box::into_raw() 往返 Rust 无效指针
- c# - 为什么 sqlCommand.ExecuteNonQuery() 没有捕捉到异常
- sql-server - SSIS如何映射数百个派生列
- html - 如何使用社交媒体图标制作透明且固定的页脚?
- ruby-on-rails - 错误 — PG::InvalidParameterValue: 错误:参数“client_min_messages”的值无效:“panic”
- flutter - Flutter 自定义抽屉尺寸
- freeradius - 如何在 FreeRADIUS C 模块中将 VSA(供应商特定属性)添加/复制到 EAP 回复的外部通道
- javascript - 通过 axios 上传文件到 WebApi
- rx-swift - RxSwift:使用 BehaviorRelay 我收到此错误:实例方法“concatMap”要求“[Int]”符合“ObservableConvertibleType”