有没有办法在 JOOQ 中为具有相同表结构的多个模式设置代码生成?

Posted

技术标签:

【中文标题】有没有办法在 JOOQ 中为具有相同表结构的多个模式设置代码生成?【英文标题】:Is there a way to setup code generation in JOOQ for multiple schemas with the same table structure? 【发布时间】:2021-09-16 17:09:09 【问题描述】:

我们有一个多租户数据库,其中每个租户都有自己的专用架构。模式始终具有相同的表结构。我想弄清楚的是,在使用代码生成跟踪架构时,是否有办法在查询时将架构传递给 JOOQ。比如:

dslContext.useSchema("schema1").select(A.id).from(A).fetch()

似乎模式总是与表对象绑定,并且在运行时映射的唯一选项是静态地通过输入模式和输出模式。

环境信息:Java/Kotlin、Maven、Spring Boot、Postgres、Flyway

【问题讨论】:

【参考方案1】:

您正在寻找的功能是:

Code generation time schema mapping Runtime schema mapping

另请参阅FAQ

这里最简单的解决方案就是在代码生成器中关闭模式信息的生成:

<outputSchemaToDefault>true</outputSchemaToDefault>

或者在运行时

new Settings().withRenderSchema(false);

【讨论】:

以上是关于有没有办法在 JOOQ 中为具有相同表结构的多个模式设置代码生成?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Python 中为具有多个分类的随机森林制作部分依赖图(使用 scikit-learn)?

具有多个数组的 unnest 的 Jooq 表示法

如何在 jdbcTemplate 中为具有相同值的多个参数标记传递参数?

MySQL - 从具有相同结构但数据不同的多个表中选择数据

JOOQ 连接两个具有相同列名的表

JOOQ:在通用界面中对来自不同表的列进行逻辑分组