Kotlin 使用Jasync时从JOOQ查询提取数据

Kotlin 使用Jasync时从JOOQ查询提取数据,kotlin,jooq,jasync-sql,Kotlin,Jooq,Jasync Sql,当使用JOOQ创建查询并使用Jasync执行查询时,如何将行数据返回到JOOQ记录中 这是我的NotTransaction助手,它执行可挂起的非异步查询 override suspend fun <T> notransaction(f: suspend (ConnectionPool<*>) -> T): T { val cdf = CompletableDeferred<T>() try {

当使用JOOQ创建查询并使用Jasync执行查询时,如何将行数据返回到JOOQ记录中

这是我的NotTransaction助手,它执行可挂起的非异步查询

    override suspend fun <T> notransaction(f: suspend (ConnectionPool<*>) -> T): T {
        val cdf = CompletableDeferred<T>()
        try {
            GlobalScope.launch {
                cdf.complete(f(connectionPool))
            }
        } catch (e: Throwable) {
            log.error(e.message ?: "", e)
            cdf.completeExceptionally(e)
        }
        return cdf.await()
    }

如何将RowData映射回JOOQ? 是否有某种方法可以获取select语句中的列及其索引的映射 或者用其他方法把结果映射回来? 我假设我需要以某种方式将它映射回一个记录,这样我就可以

listing.id.get(ListingRecord)

来自Lukas:应该可以在没有太多麻烦的情况下实现它:Flux magic(ResultQuery);然后,该实现适用于所有jOOQ查询,并且具有合理的类型安全性;然后,该实现适用于所有jOOQ查询,并且具有合理的类型安全性。
    val dsl = DSL.using(SQLDialect.POSTGRES)
    val query = dsl.select(
        listing.id, listing.title,
        listingImage.id, listingImage.listingId
    ).from(listing).leftJoin(listingImage).on(listing.id.eq(listingImage.listingId))
listing.id.get(ListingRecord)