jOOQ Kotlin 协程 - 选择所有和存在的查询

问题描述 投票:0回答:1

我想将 jOOQ 与 Kotlin 协程一起使用,但我无法找到文档或示例代码来了解如何正确使用它。

我想选择与我的查询匹配的所有行并将它们映射到我的 POJO 中。

我尝试过多种组合。

fetchAsync
听起来正确,但映射后返回类型不正确

(Mutable)List<Model!>

的返回类型不正确
open suspend fun findAll(): Flow<Model> {
    return ctx.select()
        .from(table)
        .fetchAsync()
        .await()
        .into(modelClass)  // Into is blocking
}

如果我希望它被阻止,我可以使用:

return ctx.select()
    .from(table)
    .fetchInto(modelClass)

但是没有

fetchAsyncInto
方法。

另外,如果我想做一个存在查询,我可以看到它是如何通过阻塞来完成的,但不是异步的。

例如

ctx.fetchExists(dslContext.selectFrom(table).where(YOUR_TABLE.ID.eq(id))

如何使用 jOOQ 和 Kotlin 协程执行全选和存在查询?

kotlin kotlin-coroutines jooq
1个回答
0
投票

jOOQ
3.17 开始,
jooq-kotlin-coroutines
扩展模块允许在反应式流 API 和协程 API 之间进行桥接。

并且您必须向项目添加下一个依赖项

<dependency>
  <groupId>org.jooq</groupId>
  <artifactId>jooq-kotlin-coroutines</artifactId>
  <version>version</version>
</dependency>

要了解更多详细信息,请查看 Kotlin 协程支持

© www.soinside.com 2019 - 2024. All rights reserved.