无法使用JOOQ更新SQLITE中的表行

时间:2018-07-30 10:16:16

标签: sqlite kotlin jooq

jooq正在为sqlite数据库生成无效的更新语句。

这是数据库表。

CREATE TABLE "job" (
  `id` integer PRIMARY KEY AUTOINCREMENT, 
  `addressId` text,
   `log` text
)

有效声明:

update "job" set "log" = (coalesce("log", ?) || ? || ?) WHERE id > 0

Jooq生成的语句

update "job" set "job"."log" = (coalesce("job"."log", ?) || ? || ?) where "job"."id" >= ?

这是我使用的示例代码:

DSL.using(configuration).update(JOB).set(JOB.LOG, DSL.coalesce(JOB.LOG, "")
                .concat("char(10)", "Hello"))
                .where(JOB.ID.ge(0)).execute()

如何强制jooq生成有效的sqlite更新语句?

1 个答案:

答案 0 :(得分:1)

对此最可能的解释是,您没有正确配置configurationSQLDialect.SQLITE的方言。在该方言中,set子句中的列引用将不合格,也不会引用任何列或表。