生成错误格式的查询

时间:2019-03-30 18:06:14

标签: java sql jooq

我对一段代码有问题,该代码以错误的格式生成(输出),并且没有被请求的形式:

我想使用不带“ ALTER TABLE NameOfTab ADD”的外键生成查询/ sql,所以我使用了这段代码:

DSL.constraint(DSL.name("fk_example"))
   .foreignKey("id1","id2")
   .references("referecnedTableName", "referencedColumn1", "referencedColumn2");

这是一个问题,因为它以字符串形式返回:

constraint "fk_example"
foreign key (
"id1", 
"id2"
)
references "referecnedTableName" (
"referencedColumn1", 
"referencedColumn2"
)

预期结果是:

constraint fk_example foreign key (id1, id2) 
references referecnedTableName (referencedColumn1, referencedColumn2)

ALTER表使用正确格式的类似内容

ctx.alterTable(tableName)
   .add(
      DSL.constraint(DSL.name("fk_example"))
         .foreignKey("id1","id2")
         .references("referecnedTableName","referencedColumn1","referencedColumn2"))
   .getSQL(ParamType.INLINED));

但是它返回“ alter table t3 add ...”,但我不希望“ alter table”部分。

1 个答案:

答案 0 :(得分:1)

您应该使用DSLContext.render(QueryPart)而不是QueryPart.toString()toString()的行为默认情况下是使用一些未指定的默认render()来调用Settings,其中包括生成那些双引号的标识符,我怀疑您不想这样做。