【问题标题】:How to configure JOOQ to codegen tables with the same structure?如何将 JOOQ 配置为具有相同结构的代码生成表?
【发布时间】:2016-04-05 00:11:56
【问题描述】:

我在 MySQL 中有一些具有相同结构的旧表,例如:

my_table_01
my_table_02
my_table_03
...

有没有办法可以配置 JOOQ 代码生成只生成一个由所有这些表共享的表/记录类?

【问题讨论】:

    标签: java mysql sql jooq


    【解决方案1】:

    为了实现您喜欢做的事情,您必须执行两个步骤:

    1。配置代码生成器

    您可能必须从生成中排除my_table_02my_table_03。你可以通过指定the <excludes/> tag as documented here来做到这一点。

    或者,您可以使用generator strategies (programmatic config)matcher strategies (XML config)my_table_01 重命名为my_table

    2。配置您的运行时

    在对MY_TABLE 运行查询时,您可以指定runtime table mapping 以便将MY_TABLE 映射回my_table_01my_table_02my_table_03。此映射在每个配置的基础上工作,即如果您对每个查询使用一个配置,它将具有单个查询的范围。

    当然,另一种选择是对客户端代码中的这些后缀进行抽象,例如通过表选择方法:

    public static Table<?> myTable() {
        if (something)
            return DSL.table("{0}_01", MY_TABLE);
        else if (somethingElse)
            return DSL.table("{0}_02", MY_TABLE);
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 2018-12-15
      • 2019-12-21
      • 2019-02-16
      • 2017-12-08
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 2014-09-09
      相关资源
      最近更新 更多