2016-02-02 1 views
1

Я хотел бы динамически создавать новые таблицы базы данных с использованием предопределенного шаблона таблицы. В этой части я не вижу никаких проблем.шаблон таблицы jOOQ, динамическое имя таблицы для запросов

Но тогда я бы хотел, чтобы один класс генерировал jOOQ (из шаблона) для записи 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