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

标签 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更新语句?

最佳答案

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

关于sqlite - 无法使用JOOQ更新SQLITE中的表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51591722/

相关文章:

email - 使用 Outlook smtp 服务器发送 ics 文件 RSVP 格式无法正常工作?

java - 如何将带有 Case 语句的 Sql orderby 子句转换为 JOOQ?

java - 使用 jOOQ 改变数据

python: *为什么*使用 python 的字符串操作组装 sqlite 查询不安全?

sql - 如何确定 SQLite 列是否唯一? (使用 SQL)

SQLite 元组相等性比较

Kotlin 推断 JOOQ 方法错误

sqlite - 将集合绑定(bind)为 "where col in ?"子句的右侧

java - 尽管在使用 RepositoryRestConfiguration.disableDefaultExposure() 时公开了所有方法,但 405 方法不允许

kotlin - Jetpack Compose Row - 绘制子元素 sibling