【问题标题】:How to insert/update a row in MySQL for JSON column using Java SprinBoot CrudRepository如何使用 Java SprinBoot CrudRepository 在 MySQL 中为 JSON 列插入/更新一行
【发布时间】:2019-11-02 04:29:49
【问题描述】:

我正在尝试使用 Java SpringBoot CrudRepository 在 MySQL JSON 列中插入一行。我已经浏览了多个帖子,但无法得到答案。

我将自定义查询定义为:

@Modifying
@Transactional
@Query(value = "insert into cs_test_json(config) values (':data')", nativeQuery = true)
	public void setData(@Param("data") String string);

和 MySQL 表(cs_test_json)是:

id int
config JSON

在我的控制器中我写了

JSONObject data = new JSONObject();
		data.put("name", "kc");
		data.put("age", 28);
		data.put("city", "Abad");

		repository.setData(data.toString());

当我运行这个应用程序时,我总是得到(在调用 setData 方法时) com.mysql.cj.jdbc.exceptions.MysqlDataTruncation:数据截断:无效的 JSON 文本:“无效值。”在“cs_test_json.config”列的值中的位置 0

请建议我缺少什么。 我正在使用 MySQL 8

非常感谢。

【问题讨论】:

    标签: mysql json spring-boot


    【解决方案1】:

    我发现了':data'。你可以试试:data.?这是您传递的字符串,不需要引号来进一步限定。 Spring 数据负责处理它。

    我正在通过手机回复。请原谅拼写错误和格式。

    【讨论】:

      猜你喜欢
      • 2019-04-03
      • 1970-01-01
      • 2022-01-15
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2012-03-24
      相关资源
      最近更新 更多