QueryException пытается вставить данные геолокации - PullRequest
0 голосов
/ 11 декабря 2018

У меня проблемы при попытке вставить запись в таблицу, содержащую данные геолокации.Фактически таблица содержит только один столбец геолокации, тип данных Point.Я использую Java JPA и MariaDB.Самое странное в том, что этот код работал, но приложение находится в стадии разработки, и теперь, после git merge, оно больше не работает, даже если ни один из кодов, связанных с этим геолокационным объектом, не был изменен объединенным кодом, поэтому я понятия не имею, почему он больше не работает.

Я получаю ошибку:

2018-12-11 03: 15: 21.008 WARN 16710 --- [nio-8080-exec-5] ohengine.jdbc.spi.SqlExceptionHelper: ошибка SQL: 1416, состояние SQLState: 22003

2018-12-11 03: 15: 21.008 ОШИБКА 16710 --- [nio-8080-exec-5].координата, окрестность, число, точка, public_place, public_place_type, state, zip_code, id) значения (?,?,?,?,?,?,?,?,?,?,?,?,?), параметры [,'Fortaleza', '', - 3.7605171, -38.57384639999998, 'Jóquei Clube', '2307',

1 Ответ

0 голосов
/ 11 декабря 2018
This <bytearray:�� should be the value of the Point field.

POINT - двоичный тип.Вы не можете использовать символы;Вы должны использовать какой-нибудь гекс или какой-нибудь механизм экранирования.

Похоже, git является центром искажения текста.

Каждый и его младший брат хотят делать смешные дела с байтами, которыене простые аськи.Этот черный бриллиант со знаком вопроса является символом «замены» - он появляется, когда кто-то ожидает UTF-8, получая кодировку, отличную от UTF-8.Исходные данные потеряны.

Поскольку вы подразумевали, что данные были переданы через несколько раздач, я не могу (отсюда) даже рискнуть предположить, когда они были искажены.

Обратите внимание, в частности, что Point является "двоичной" кодировкой (она же "bytearray"), поэтому необходимо что-то предпринять, чтобы защитить ее от искажения.Некоторые используют hex, некоторые используют Base64.Очевидно, что какой-то шаг не смог этого сделать, что позволило последующему шагу подбросить руки UTF-8 и сгенерировать эти символы.

...