使用带参数的 SET_JSON 时 NamedParameterJdbcTemplate 语法错误

时间:2021-05-17 12:10:33

标签: spring-jdbc jdbctemplate mysql-json

我正在尝试使用 Spring 的 NamedParameterJdbcTemplate (MySQL 5.7.12) 对 JSON 列执行更新子句,如下所示:

MapSqlParameterSource params = new MapSqlParameterSource()
          .addValue("id", id)
          .addValue("key", key)
          .addValue("value", value);

jdbcTemplate.update("UPDATE test_table SET data = JSON_SET(IFNULL(data, \"{}\"), \"$.:key\", :value) WHERE id=:id", params);

我收到关于“$”的语法错误。

在尝试使用 String.format 构建查询后,我能够确定错误是由 $.:key 引起的,对此有任何好的解决方案,因此我不需要使用 String.format 嵌入变量?

谢谢!

0 个答案:

没有答案
相关问题