[英]Spring webflux 5.2.3 bodyToMono called after empty Mono in onStatus
[英]Java Spring Webflux - inserting an empty Mono result of a filter?
请提出一个小问题:将空的 Mono 保存是否有意义,我的意思是 Mono 上的过滤器的结果,请保存到反应式数据库中?
一个小样本:
// step 1 - from some Mono, compute my pojo
final Mono<MyPojo> myPojoMono = getSomeMonoAndConvertToMyPojo();
// step 2 - based on a predicate, some myPojo are invalid, I do not want to save them, but some are valid, I need to persist them!
final Mono<MyPojo> validMyPojoMono = myPojoMono.filter(oneMyPojo -> computeIsValidMyPojo(oneMyPojo));
// step 3 - for those who are valid only, I want to persist them. BTW, should I use something else other than .insert(Publisher) which strangely, returns a flux?
final Flux<PdsResponse> whyFlux = myReactiveRepository.insert(validMyPojoMono);
return whyFlux;
在第 2 步之后,如果谓词不匹配,(不确定)结果将为空 mono。
因此,请在空的 mono 上调用持久性 API 是否有意义?
请问实现这个用例的适当方法是什么?
谢谢
你的代码有点同步,我不确定它是否有意义。
我会这样做
final Mono<MyPojo> myPojoMono = getSomeMonoAndConvertToMyPojo()
.filter(oneMyPojo -> computeIsValidMyPojo(oneMyPojo));
.flatMap(validMyPojoMono-> reactiveRepository.insert(validMyPojoMono));
关键是,如果filter
后你得到空的 mono 那么它不会持续存在,这对我来说是有意义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.