【问题标题】:jOOQ table template, dynamic table name for queriesjOOQ 表模板,查询的动态表名
【发布时间】:2016-02-02 22:25:05
【问题描述】:

我想使用预定义的表格模板动态创建新的数据库表格。那部分我看不出有什么问题。

但是我希望有一个 jOOQ 生成的表类(来自模板)来编写 jOOQ 查询并在执行前更改表名。

有人有解决办法吗?

【问题讨论】:

    标签: java sql jooq


    【解决方案1】:

    为此使用 jOOQ 的运行时模式/表映射支持:

    Settings settings = new Settings()
        .withRenderMapping(new RenderMapping()
        .withSchemata(
            new MappedSchema().withInput("THE_SCHEMA")
                              .withOutput("THE_SCHEMA")
                              .withTables(
                new MappedTable().withInput("PREDEFINED_TABLE")
                                 .withOutput("CHANGED_TABLE")
            )
        ));
    
    // Add the settings to the DSLContext
    DSLContext ctx = DSL.using(connection, dialect, settings);
    
    // Run your queries with the above ctx
    ctx.select(PREDEFINED_TABLE.COLUMM)
       .from(PREDEFINED_TABLE)
       .fetch();
    

    上面会生成

    SELECT "THE_SCHEMA"."CHANGED_TABLE"."COLUMN"
    FROM "THE_SCHEMA"."CHANGED_TABLE"
    

    更多信息在这里: http://www.jooq.org/doc/latest/manual/sql-building/dsl-context/runtime-schema-mapping

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2012-12-12
      • 2018-10-05
      • 2021-06-02
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多