以错误的格式生成查询

问题描述 投票:0回答:1

我有一段代码问题,它以错误的格式生成(输出)而不是请求的形式:

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

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”部分。

java sql jooq
1个回答
1
投票

你应该使用DSLContext.render(QueryPart)而不是QueryPart.toString()toString()行为默认使用一些未指定的默认render()调用Settings,包括生成那些双引号标识符,我怀疑你不想拥有它。

© www.soinside.com 2019 - 2024. All rights reserved.