2017-12-21 4 views
0

Ich habe ein MovieRepository, das ReactiveMongoRepository erweitert. Ich möchte ein einzelnes POJO reaktiv speichern. Aber ReactiveMongoRepository bietet keine Speichermethode für Mono oder Publisher. Ich muss block() Methode verwenden oder die saveAll Methode im ReactiveMongoRepository verwenden.Warum Spring ReactiveMongoRepository hat keine Speichermethode für Mono?

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

Gibt es einen besseren Weg, um diese Art von Problem zu lösen? Ich denke nicht, dass die Verwendung der Block-Methode eine gute Idee für die reaktive Programmierung ist.

Antwort

2

Man könnte so etwas wie dieses

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