回到jOOQ 2.5,看起来你可以通过FactoryOperations类设置PostgreSQL search_path,但是这个类已经在jOOQ 3.5中消失了。显然,FactoryOperations分为DSL和DSLContext,但我似乎无法找到使用(Schema)方法的结果。我们如何在更新版本的jOOQ中设置PostgreSQL search_path?
答案 0 :(得分:1)
当jOOQ 3.0发布时,其中一些“遗留”功能被删除主要是因为它们没有经过深思熟虑。在这种特殊情况下,use(Schema)
方法假装jOOQ支持的不同RDBMS实际上对“当前模式”的含义有一个共同点。但是,对于那些将jOOQ与多个数据库一起使用的用户来说,这种实现有点误导和混淆。
More information on the jOOQ 3.0 feature removals here
今天的解决方案是
ALTER USER my_user SET search_path = ...
使用此功能,您可以在运行时指定jOOQ生成的真实模式名称。例如,如果生成的代码中的模式为FOO
,并且生成的“普通”SQL语句如下所示:
SELECT foo.table.column FROM foo.table
您可以指定从FOO
到BAR
的映射,让jOOQ生成以下SQL,而无需触及您的Java代码:
SELECT bar.table.column FROM bar.table