在jOOQ中设置PostgreSQL search_path

时间:2015-01-09 21:46:22

标签: postgresql jooq

回到jOOQ 2.5,看起来你可以通过FactoryOperations类设置PostgreSQL search_path,但是这个类已经在jOOQ 3.5中消失了。显然,FactoryOperations分为DSL和DSLContext,但我似乎无法找到使用(Schema)方法的结果。我们如何在更新版本的jOOQ中设置PostgreSQL search_path?

1 个答案:

答案 0 :(得分:1)

当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