用另一个 Mono 对象更新 Mono 对象

Updating Mono object by another Mono object

亲爱的, 我坚持实现一个函数(它基本上是一个更新操作)能够将 Mono 作为参数和 return Mono 的更新版本,其中:

这是示例代码(直接提供对象,不使用 Mono 实例:

public Mono<CompanyDto> updateById(String id, CompanyDto companyDtoMono) {
    return getCompanyById(id).map(companyEntity -> {
        companyEntity.setDescription(companyDtoMono.getDescription());
        companyEntity.setName(companyDtoMono.getName());
        return companyEntity;
    }).flatMap(companyEntity2 -> reactiveNeo4JTemplate.save(companyEntity2)).map(companyEntity -> companyMapper.toDto(companyEntity));

}`

问题是:如果函数签名是

,我该如何更改代码
public Mono<CompanyDto> updateById(String id, Mono<CompanyDto> companyDtoMono)

PS:

getCompanyById(id)

return一个

Mono<CompanyEntity>

谢谢, 最佳

脸书

这个问题有很多解决方案,但其中之一是使用 Zip

    public Mono<CompanyDto>  updateById(String id, Mono<CompanyDto> companyDtoMono){
 return    Mono.zip(getCompanyById(id),companyDtoMono,(companyEntity, companyDto) -> {
        companyEntity.setDescription(companyDto.getDescription());
        companyEntity.setName(companyDto.getName());
        return companyEntity;
    })
         .flatMap(companyEntity2 -> reactiveNeo4JTemplate.save(companyEntity2))
         .map(companyEntity -> companyMapper.toDto(companyEntity));
}