Java 使用SpringWebFlux反应式存储库会产生嵌套的Mono对象
以上三行代码生成Java 使用SpringWebFlux反应式存储库会产生嵌套的Mono对象,java,spring,spring-webflux,reactor,Java,Spring,Spring Webflux,Reactor,以上三行代码生成Mono。如何将其转换为单声道或避免出现这种情况?这无关紧要。它是一个反应流编程模型,并通过ProjectReactor实现其API。请先熟悉一下: 您需要的是Mono的flatMap操作符: applicationDataRepository.findById(100L).map(o -> { o.setName("changed name"); return applicationDataRepository.save(o); })
Mono
。如何将其转换为单声道或避免出现这种情况?这无关紧要。它是一个反应流编程模型,并通过ProjectReactor实现其API。请先熟悉一下:
您需要的是Mono
的flatMap
操作符:
applicationDataRepository.findById(100L).map(o -> {
o.setName("changed name");
return applicationDataRepository.save(o);
})
/**
*异步转换此{@link Mono}发出的项,并返回
*由另一个{@link Mono}发出的值(可能更改值类型)。
*
*
*
*
*@param transformer动态绑定新{@link Mono}的函数
*@param结果类型已绑定
*
*@返回具有异步映射值的新{@link Mono}。
*/
公共最终单平面地图(功能该操作不应该是flatMap
?
applicationDataRepository.findById(100L).map(o -> {
o.setName("changed name");
return applicationDataRepository.save(o);
})
/**
* Transform the item emitted by this {@link Mono} asynchronously, returning the
* value emitted by another {@link Mono} (possibly changing the value type).
*
* <p>
* <img class="marble" src="doc-files/marbles/flatMapForMono.svg" alt="">
*
* @param transformer the function to dynamically bind a new {@link Mono}
* @param <R> the result type bound
*
* @return a new {@link Mono} with an asynchronously mapped value.
*/
public final <R> Mono<R> flatMap(Function<? super T, ? extends Mono<? extends R>>
transformer) {