Проблема извлечения строк из столбцов varbinary с использованием HIbernate и MySQL - PullRequest
0 голосов
/ 28 марта 2010

Вот мой сценарий. Я сохраняю кучу строк, содержащих азиатские символы в MySQL, используя Hibernate. Эти строки записаны в столбцах varbinary. Все отлично работает во время операции сохранения. БД содержит правильные значения (последовательность байтов). Если я запрашиваю (снова используя Hibernate) для сохраненных строк, я получаю правильные результаты. Но когда Hibernate заполняет сущность, которой принадлежат строки, значениями из базы данных, я получаю значения, отличные от тех, которые я использовал в запросе, который их получил. Вместо получения правильных значений я получаю кучу заменяющих символов FFFD.

Например: если я сохраню «하늘» в БД, а затем запрошу его, результирующая строка будет \ uFFFD \ uFFFD \ uFFFD \ uFFFD \ uFFFD \ uFFFD.

  • Соединение с БД имеет следующие параметры: useUnicode = true & characterEncoding = UTF-8,
  • Я пытался использовать следующие конфигурации для Hibernate, но это не решило проблему:
    - connection.useUnicode = true
    - connection.characterEncoding = UTF-8

    Кстати, все это прекрасно работает, если столбцы MySQL имеют тип varchar. Что мне не хватает? Какие-либо предложения? Спасибо

1 Ответ

0 голосов
/ 08 мая 2012

Установить набор символов соединения также двоичным:

SET NAMES 'binary';
...