使用 Spring 数据关系更新的 JSON_SET 操作失败,json 文本无效

问题描述

我正在使用 R2dbc jasync 驱动程序在包含 json 列的 MysqL db 表上生成和执行更新查询

我正在尝试使用 R2dbcEntityTemplateorg.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 (将#修改为@)