问题描述
我正在使用 R2dbc jasync 驱动程序在包含 json 列的 MysqL db 表上生成和执行更新查询。
我正在尝试使用 R2dbcEntityTemplate
和 org.springframework.data.relational.core.query.Update.update
以及 org.springframework.data.relational.core.query.Update.set
方法对列执行 JSON_SET 操作。我正在尝试生成一个相当于
UPDATE mytable SET json_col = JSON_SET(json_col,'$.path_to_update',CAST('{"a":"b"}' AS JSON)) WHERE id=:id
但我收到以下错误:
invalid json text: "the document is empty." at position 0 in value for column
据我所知,Update.set()
操作并没有将 JSON_SET 操作委托给 DB,而是 DB 试图将生成的字符串解释为 json,这在位置 0 是无效的 json。
如何在 DB 将值解释为 JSON 之前使用 Update.set()
函数将 MysqL 函数调用委托给 DB 来实现这一点?
我尝试使用 dbClient.sql().bind()
并且它有效但使用 dbTemplate.update()
这不起作用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)