Spring webflux jooq setLocal 不适用于 select

问题描述 投票:0回答:0

我正在尝试使用下面的源代码在 Postgresql 上设置一个局部变量

DSL上下文

@Bean(name = ["r2dbcDsl"])
fun r2dbcDsl(): DSLContext {
    return DSL.using(connectionFactory)
}

ReactiveTransactionManager

@Bean
fun reactiveTransactionManager(): ReactiveTransactionManager {
    return R2dbcTransactionManager(connectionFactory)
}

功能

@Transactional(readOnly = true, transactionManager = "reactiveTransactionManager")
fun select(): Flux<Map<String, Any>> {
    return Mono.just(r2dbcDsl.setLocal(name("enable_sort"), value(false)))
        .flatMapMany {
            Flux.from(
                r2dbcDsl
                    .select(field("current_setting('enable_sort')"))
            )
        }
        .map { it.intoMap() }
}

但是,函数返回如下

实际反应

[
    {
        "current_setting('enable_sort')": "on"
    }
]

预期的回应

[
    {
        "current_setting('enable_sort')": "off"
    }
]

依赖性

spring-boot-starter-webflux:2.7.3
spring-boot-starter-jooq:2.7.3
org.springframework.boot:spring-boot-starter-data-r2dbc:2.7.3
io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE

所以,请告诉我如何使用 DSLContext select 函数和 setLocal

postgresql spring-webflux jooq r2dbc-postgresql
© www.soinside.com 2019 - 2024. All rights reserved.