Kotlin 使用Jasync时从JOOQ查询提取数据
当使用JOOQ创建查询并使用Jasync执行查询时,如何将行数据返回到JOOQ记录中 这是我的NotTransaction助手,它执行可挂起的非异步查询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 {
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)