hibernate - 使用 Kotlin 协程加载多个 JPA 实体
问题描述
我正在尝试在应用层中使用 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
,但我在任何地方都找不到任何例子。这可以做到吗?
解决方案
将每个都s
放入列表并在 for 循环之外执行awaitAll(yourListOfs)
推荐阅读
- unity3d - 在 Unity 中停用游戏对象后如何重置动画?
- java - 将对象传递给新活动返回 null
- css - 具有不规则矩形和边框的 CSS 自定义形状
- aws-lambda - aws serverless - 为 cognito 授权方导出输出值
- scheme - R5RS - 如何测试使用“读取”操作的程序
- java - 可能有多个答案的冗余 if 语句的问题
- netsuite - 防止 Netsuite 获取新票
- python - 是否有一种特殊的语法可以暂停协程直到满足条件?
- java - 是否可以解释在 Java 中将 MD5 哈希应用于一组并行文件时的行为变化?
- hadoop - start-all.sh:找不到命令。我该如何解决?