Я пытался следовать инструкции по отображению схемы в jOOQ.
Во-первых, я начинаю с квалифицированного имени и таблицы:
Name myTableName = DSL.name("schema", "myTable");
Table<Record> myTable = DSL.table(myTableName);
Затем я создаю контекст с отображением схемы:
Configuration configuration = new DefaultConfiguration();
configuration.set(SQLDialect.HSQLDB);
Settings settings = new Settings()
.withRenderNameStyle(RenderNameStyle.QUOTED)
.withRenderSchema(true)
.withRenderMapping(
new RenderMapping()
.withSchemata(
new MappedSchema()
.withInput("schema")
.withOutput("PUBLIC")
)
);
configuration.set(settings);
return DSL.using(configuration);
Затем я создаю строку SQL для создания таблицы:
context.createTable(myTable)....getSQL();
Но он не может отобразить схему:
invalid schema name: schema in statement [create table "schema"."myTable"(
...
Что именно я делаю неправильно здесь?
Для большей картины я пытаюсь написать SQL, переносимый на разные диалекты, но каждая из сред, для которых мне приходится создавать, использует разные схемы. Я пытаюсь абстрагировать общую схему на Java, которую затем могу использовать jOOQ для сопоставления в зависимости от целевой среды.