Spring 3 MVC + MySQL: не может хранить символ € - PullRequest
1 голос
/ 12 июля 2010

У меня Spring 3 MVC, настроенный с Hibernate и MySQL 5. В веб-форме я ввожу в поле один символ, € (т.е. только один символ).Когда я пытаюсь сохранить данные, я получаю следующее исключение:

java.sql.BatchUpdateException: Data truncation: Data truncated for column 'name' at row 1

'name' - это строка в моем объекте модели.Столбец 'name' имеет тип данных VARCHAR (80) в MySQL.Я также попытался ввести € в столбце ТЕКСТ, с тем же результатом.

Я настроил CharacterEncodingFilter для своего веб-приложения, и моя строка подключения к БД выглядит следующим образом:

jdbc:mysql://localhost/baseApp?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8

Есть идеи, в чем может быть проблема?

Обновление:

Я не думаю, что MySQL имеет какое-либо отношение к этой проблеме.Я перехватил HTTP POST до того, как были установлены свойства моего объекта модели, и € правильно закодирован как% 80.Однако, когда я опрашиваю свойства моего модельного объекта, это просто?

Есть мысли?

1 Ответ

0 голосов
/ 12 июля 2010

Вы уверены, что база данных MySQL поддерживает UTF-8?Я думаю, что в настройках по умолчанию используется latin1.Вам также необходимо убедиться, что для набора «mysql] и [mysqld] в файле конфигурации my.ini для набора по умолчанию задано значение« utf8 ».Кроме того, убедитесь, что таблица была построена с настройками UTF-8.

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