Загрузите несколько объектов JPA, используя сопрограмму Kotlin

63
5

Я пытаюсь загрузить несколько объектов, используя сопрограммы Hibernate и Kotlin на уровне приложений. Делать что-то вроде этого.

fun load() : SomeData {

val steps = someFunctionCallToGetSteps()

val stepCollection : List<Step> = MutableList()

runBlocking {

for (step in steps) {

val s = async { getStepData(step) }
payers.add(s.await())
}
}
}

private suspend fun getStepData(step : Int) : Iterable<Step> {

return someComputation()
}

Но этот подход не верен, потому что я использую await сразу, поэтому он не асинхронен. Мне сказали собрать все отсрочки и использовать awaitAll но я нигде не могу найти ни одного примера. Можно ли это сделать?

спросил(а) 2021-01-25T18:00:48+03:00 4 месяца, 2 недели назад
1
Решение
116

Возьмите все s в список и за пределами цикла for awaitAll(yourListOfs)

ответил(а) 2021-01-25T18:00:48+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема