Webflux: объединение потока в тип с коллекцией

#java #kotlin #spring-webflux #project-reactor

#java #котлин #spring-webflux #проект-реактор

Вопрос:

У меня есть тип: A, который содержит коллекцию, то есть список b:

 data class A(val b: List<B>,
             val value_in_b: String)

data class B(value_in_b: String)
 

Я получаю a Flux<A> и Flux<B> из двух источников, где я могу сопоставить строку, которая будет во многих экземплярах B. Как мне объединить их в Spring WebFlux?

приветствуются ответы на Kotlin или java 🙂

Ответ №1:

Нашел мой ответ для всех, кто оказался здесь:

 return clientForA.get()     //Flux<A>
            .map { a ->
                b.get(a.value_in_b)     //Flux<B>
                    .collect(Collectors.toSet()) //Mono<MutableSet<B>>
                    .map { putColletionInA(a, b) }
            }
            .flatMap { it }