postgresql - 在jOOQ中设置PostgreSQL search_path

标签 postgresql jooq

回到 jOOQ 2.5,看起来您可以通过 FactoryOperations 设置 PostgreSQL search_path类,但该类在 jOOQ 3.5 中消失了。显然 FactoryOperations 分为 DSL 和 DSLContext,但我似乎找不到 use(Schema) 方法的结束位置。我们如何在最新版本的 jOOQ 中设置 PostgreSQL search_path?

最佳答案

当 jOOQ 3.0 发布时,其中一些“遗留”功能被删除,主要是因为它们没有经过深思熟虑。在这种特殊情况下,use(Schema)方法假装 jOOQ 支持的不同 RDBMS 实际上对“当前模式”是什么有一个共同的想法。然而,对于那些使用 jOOQ 和多个数据库的用户来说,这种实现有点误导和困惑。

More information on the jOOQ 3.0 feature removals here .

今天的解决方案是

1。使用特定于供应商的命令,例如

ALTER USER my_user SET search_path = ...

More info about that here

2。使用 jOOQ 的运行时模式映射功能

使用此功能,您可以在运行时指定 jOOQ 生成的真实模式名称。例如,如果生成的代码中的架构是 FOO 并且生成的“普通”SQL 语句将如下所示:

SELECT foo.table.column FROM foo.table

您可以指定从 FOOBAR 的映射,让 jOOQ 生成以下 SQL,而无需触及 Java 代码:

SELECT bar.table.column FROM bar.table

More info about that here

关于postgresql - 在jOOQ中设置PostgreSQL search_path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869767/

相关文章:

java - 如何模拟/ stub jOOQ UpdatableRecordImpl store() 方法?

postgresql - 如何从 postgres 存储函数读取 UDT

postgresql - 返回结果集中数组的公共(public)元素 - PostgreSQL

java - 在 jUnit 测试的 UPDATE 语句中使用 jOOQs MockResult 类

java - 如何使用 jOOQ 抽象模式?

code-generation - Jooq 代码生成 "excludes"不适用于类型安全配置

java - 如何将 Jooq 源代码生成与 M2E 一起使用?

sql - 显示今天、明天、一周和一个月的产品

sql - 在plpgsql中连接查询字符串中的多个字段

sql - PostgreSQL 子查询作为可用变量