用另一个 Mono 对象更新 Mono 对象
Updating Mono object by another Mono object
亲爱的,
我坚持实现一个函数(它基本上是一个更新操作)能够将 Mono 作为参数和 return Mono 的更新版本,其中:
- returned 实例派生自数据库查询;
- Mono 的更新版本包含 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));
}
亲爱的, 我坚持实现一个函数(它基本上是一个更新操作)能够将 Mono 作为参数和 return Mono 的更新版本,其中:
- returned 实例派生自数据库查询;
- Mono 的更新版本包含 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));
}