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更新语句?
答案 0 :(得分:1)
对此最可能的解释是,您没有正确配置configuration
与SQLDialect.SQLITE
的方言。在该方言中,set
子句中的列引用将不合格,也不会引用任何列或表。