【发布时间】:2020-02-27 04:43:42
【问题描述】:
我有一个用于更新 data 类型列中的 status 值的 sql 查询
jsonb 在 Postgresql 中看起来像这样:
update sample
set updated = now(),
data = jsonb_set(data, '{status}', jsonb 'CANCELLED', true)
where id = 11;
我需要在我的 Kotlin 项目中将其转换为一个有效的 jOOQ 查询......我 到目前为止有这个:
jooq.update(Tables.SAMPLE)
.set(Tables.SAMPLE.UPDATED, OffsetDateTime.now())
.set(Tables.SAMPLE.DATA, field("jsonb_set(data, '{status}', jsonb '\"CANCELLED\"', true)"))
.where(Tables.SAMPLE.ID.eq(id))
.execute()
但是第二个set 失败 以下函数都不能用
提供的参数错误消息...set 的正确签名是什么
我可以在这里使用吗?
我的 jOOQ 语法基于 Lukas Eder 在Using raw value-expressions in UPDATE with jooq 中提供的答案
【问题讨论】:
-
你为什么将
CANCELLED包裹在"CANCELLED"中? -
这是一个很好的问题......直到你指出这一点,我才意识到这一点。这是一个疏忽。
标签: postgresql kotlin jooq