我试图用Spring项目正确地设置JOOQ,该项目使用基于r2dbc驱动程序的反应堆栈,用于Postgres。我遇到了相当多的问题,并在最后“希望”我偶然发现了以下错误:
Caused by: java.lang.NoSuchMethodError: 'org.jooq.DSLContext org.jooq.impl.DSL.using(io.r2dbc.spi.ConnectionFactory)以下是我的build.gradle中最相关的部分:
compileOnly("org.jooq:jooq:3.17.5")
compileOnly("org.jooq:jooq-codegen:3.17.5")
compileOnly("org.jooq:jooq-meta-extensions:3.17.5")
implementation("org.jooq:jooq-meta:3.17.5")
implementation("org.jooq:jooq-kotlin-coroutines:3.17.5")
implementation("org.jooq:jooq-kotlin:3.17.5")
runtimeOnly("io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE")
runtimeOnly("io.r2dbc:r2dbc-spi:1.0.0.RELEASE")
runtimeOnly("io.r2dbc:r2dbc-pool:1.0.0.RELEASE")
runtimeOnly("org.postgresql:postgresql:42.5.0")我正在运行Spring 2.7.5
异常的原因来自运行时,并且是代码的一部分:
private val dsl = DSL.using(
ConnectionFactories.get(
ConnectionFactoryOptions
.parse(databaseConfig.url)
.mutate()
.option(USER, databaseConfig.username)
.option(PASSWORD, databaseConfig.password)
.build()
)
)databaseConfig.url:r2dbc:池:postgresql://localhost:5432/test
大多数情况下,我尝试过更改依赖关系版本,因为目前我没有任何其他有效的想法。
发布于 2022-11-17 14:46:37
你用的是:
compileOnly("org.jooq:jooq:3.17.5")这意味着您只在编译时使用最新的jOOQ版本(这就是您的代码编译的原因),但在运行时,您使用的是Spring的jOOQ版本,该版本更旧。尝试将其更改为compile,或将其添加到implementation部分
https://stackoverflow.com/questions/74477032
复制相似问题