복붙노트

[SPRING] 왜 봄 ReactiveMongoRepository는 모노에 대한 저장 방법을 가지고 있지 않습니까?

SPRING

왜 봄 ReactiveMongoRepository는 모노에 대한 저장 방법을 가지고 있지 않습니까?

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)));
}

이런 종류의 문제를 해결할 더 좋은 방법이 있습니까? 블록 사용 방법은 반응성 프로그래밍에 좋은 아이디어라고 생각하지 않습니다.

해결법

  1. ==============================

    1.너는 이렇게 할 수있어.

    너는 이렇게 할 수있어.

     Mono<Movie> movieMonoSaved = movieMono.flatMap(movieRepository::save);
     return ServerResponse.status(HttpStatus.CREATED).body(movieMonoSaved, Movie.class);
    
  2. from https://stackoverflow.com/questions/47918441/why-spring-reactivemongorepository-doest-have-save-method-for-mono by cc-by-sa and MIT license