【发布时间】:2021-09-23 14:38:31
【问题描述】:
我的查询看起来像(使用 JOOQ v 3.15):
override fun getCredentialsById(id: Long): Mono<UserCredentialsModel> {
return Mono.from {
dsl.select(
USER_CREDENTIALS.ID,
USER_CREDENTIALS.EMAIL,
USER_CREDENTIALS.PHONE,
USER_CREDENTIALS.LOGIN,
USER_CREDENTIALS.PASSWORD)
.from(USER_CREDENTIALS)
.where(USER_CREDENTIALS.ID.eq(id))
.and(USER_CREDENTIALS.IS_ACTIVE.eq(true))
.fetchInto(UserCredentialsModel::class.java)
}
}
JOOQ 配置:
@Bean
fun createContext(): DSLContext {
return DSL.using(connection)
}
其中connection 是io.r2dbc.spi.ConnectionFactory
我遇到了一个异常:
org.jooq.exception.DetachedException: Attempt to execute a blocking method (e.g. Query.execute() or ResultQuery.fetch()) when only an R2BDC ConnectionFactory was configured
我应该如何以响应式风格将我的查询结果提取到 Kotlin 数据类(或 Java JOOQ 的 POJO)中?
【问题讨论】:
-
@SimonMartinelli 谢谢!我已经阅读了文档,但不清楚如何将查询结果映射到某个 Data 类中,并以非阻塞方式将它们包装到
中