回到 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 = ...
2。使用 jOOQ 的运行时模式映射功能
使用此功能,您可以在运行时指定 jOOQ 生成的真实模式名称。例如,如果生成的代码中的架构是 FOO
并且生成的“普通”SQL 语句将如下所示:
SELECT foo.table.column FROM foo.table
您可以指定从 FOO
到 BAR
的映射,让 jOOQ 生成以下 SQL,而无需触及 Java 代码:
SELECT bar.table.column FROM bar.table
关于postgresql - 在jOOQ中设置PostgreSQL search_path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869767/