首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JOOQ与R2dbc驱动程序的PostgreSQL集成

JOOQ与R2dbc驱动程序的PostgreSQL集成
EN

Stack Overflow用户
提问于 2022-11-17 14:19:22
回答 1查看 33关注 0票数 0

我试图用Spring项目正确地设置JOOQ,该项目使用基于r2dbc驱动程序的反应堆栈,用于Postgres。我遇到了相当多的问题,并在最后“希望”我偶然发现了以下错误:

代码语言:javascript
复制
Caused by: java.lang.NoSuchMethodError: 'org.jooq.DSLContext org.jooq.impl.DSL.using(io.r2dbc.spi.ConnectionFactory)

以下是我的build.gradle中最相关的部分:

代码语言:javascript
复制
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

异常的原因来自运行时,并且是代码的一部分:

代码语言:javascript
复制
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

大多数情况下,我尝试过更改依赖关系版本,因为目前我没有任何其他有效的想法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-17 14:46:37

你用的是:

代码语言:javascript
复制
compileOnly("org.jooq:jooq:3.17.5")

这意味着您只在编译时使用最新的jOOQ版本(这就是您的代码编译的原因),但在运行时,您使用的是Spring的jOOQ版本,该版本更旧。尝试将其更改为compile,或将其添加到implementation部分

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74477032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档