Я работаю с R2DB C, и мне нужно выполнить запрос, который по запросу возвращает поток моих сущностей, и после этого мне нужно преобразовать эти сущности в DTO, но для создания DTO мне нужно сделать еще один запрос к база данных для каждой сущности, которая возвращает некоторую специальную информацию из других таблиц, например:
Этот код не работает, когда общее количество идентификаторов превышает 512
orderRepository.findByIds(listIds).flatMap{ order->
eventRepostiry.findByOrderId(order.id).map{events->
entityToDtoMapper.map(order,events,OrderWithEventsDto::class.java)
}
}
concatMap не помогает .
Но этот код работает
orderRepository.findByIds(listIds).collectList().flatMapMany{orders->
Flux.fromIterable(orders)
}.flatMap{ order->{
eventRepository.findByOrderId(order.id).collectList().flatMapMany{ events->
Flux.fromIterable(events)
}.map { event->
entityToDtoMapper.map(order,events,OrderWithEventsDto::class.java)
}
}
}
Я думаю, что есть лучшее решение этой проблемы. Как я должен делать эти запросы правильно?