【发布时间】:2022-01-12 14:45:57
【问题描述】:
我想在我的反应式 sql 客户端事务中使用 Kotlin 协程。
为简单起见,我将使用文档here 中提到的提供的辅助函数io.vertx.mutiny.sqlclient.Pool#withTransaction 。由于传递的函数不是协程挂起函数,所以当我尝试编译如下代码时,我会收到类似Suspension functions can be called only within coroutine body 的错误
val client : PgPool
...
suspend fun someServiceFunction () {
client.withTransaction { connection ->
repository.save(connection, entity).awaitSuspending() //This is not working
...
}
}
withTransaction 的函数头如下所示
@CheckReturnValue
public <T> Uni<T> withTransaction(Function<SqlConnection, Uni<T>> function)
我问自己是否还有办法将它与 kotlin 协程一起使用,因为我对它们很陌生。
感谢您的帮助!
【问题讨论】:
标签: kotlin kotlin-coroutines vert.x quarkus mutiny