其他分享
首页 > 其他分享> > 为什么Spring ReactiveMongoRepository没有Mono的保存方法?

为什么Spring ReactiveMongoRepository没有Mono的保存方法?

作者:互联网

我有一个扩展ReactiveMongoRepository的MovieRepository.我想以反应方式保存单个POJO.但ReactiveMongoRepository不为Mono或Publisher提供保存方法.我必须使用block()方法或在ReactiveMongoRepository中使用saveAll方法.

public Mono<ServerResponse> create(ServerRequest request) {

    Mono<Movie> movieMono = request.bodyToMono(Movie.class);
    return movieRepository.save(movieMono.block()) //
            .flatMap((movie) -> ServerResponse.ok().body(fromObject(movie)));
}

有没有更好的方法来解决这类问题?我不认为使用块方法是反应式编程的好主意.

解决方法:

你可以这样做

 Mono<Movie> movieMonoSaved = movieMono.flatMap(movieRepository::save);
 return ServerResponse.status(HttpStatus.CREATED).body(movieMonoSaved, Movie.class);

标签:project-reactor,spring,mongodb,spring-data-mongodb,reactive-programming
来源: https://codeday.me/bug/20191008/1874452.html