Как вставить / обновить строку в MySQL для столбца JSON с помощью Java SprinBoot CrudRepository - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь вставить строку в столбец MySQL JSON, используя Java SpringBoot CrudRepository. Я уже просмотрел несколько сообщений, но не смог получить ответ на этот вопрос.

Я определил пользовательский запрос как:

@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: «неверное значение». в позиции 0 в значении для столбца 'cs_test_json.config'

Пожалуйста, предложите мне, чего мне не хватает. Я использую MySQL 8

Большое спасибо.

1 Ответ

1 голос
/ 19 июня 2019

Я заметил ':data'.Можете попробовать с :data.?Это строка, которую вы передаете, и она не нуждается в кавычках для дальнейшей квалификации.Spring data заботится об этом.

Я отвечаю с мобильного.Извините за опечатки и форматирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...