jOOQ表模板:动态表名查询

3
我希望能够使用预定义的表模板动态创建新的数据库表。这一部分我认为没有问题。
但是,我希望只使用一个jOOQ生成的表类(来自模板)来编写jOOQ查询,并在执行之前仅更改表名。
有人有解决方案吗?
1个回答

3
使用 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接