Пружинный реактор Join 2 Mono - PullRequest
       17

Пружинный реактор Join 2 Mono

0 голосов
/ 16 октября 2018

Мне нужно подключиться к базе данных реактивным способом, используя пружинный реактор.Вот сценарий, который я хотел бы получить ->

  1. 1.Подключиться к БД и получить ответ1

    2. Затем подключиться к БД и получить ответ2 при предоставлении ответа1.параметр

  2. Объедините эти два в одном ответе и отправьте пользователю в виде строки

Поскольку все объекты уникальны, я планировал использовать Mono

Mono<Response1> r1 = qrepo.findByID(id)
Mono<Response2> r2 = qrepo.findByID(r1.getParam())

Mono<String> combined = Mono.when(r1, r2).map(t -> { 
            StringBuffer sb = new StringBuffer();
                sb.append(r1.getProp1());
                sb.append(r2.getProp2());

Но это не беспокоит меня

1 Ответ

0 голосов
/ 16 октября 2018

Вы должны получить response1, затем flatMap его результат для доступа к параметру и передать его в хранилище, затем отобразить результат в строку

    Mono<String> resultMono = qrepo.findByID(id)
            .flatMap(response1 -> qrepo.findByID(response1.getParam())
                    .map(response2 -> {
                        StringBuilder sb = new StringBuilder();
                        sb.append(response1.getProp1());
                        sb.append(response2.getProp2());
                        return sb.toString();
                    }));
...