У меня есть приложение Spring Roo с использованием JPA, реализованного через Hibernate. Я не могу использовать кириллические символы, потому что они становятся «????» в БД.JPA (Hibernate) Кириллические символы
1) Прямая вставка кириллических символов в БД в порядке.
2) Если в БД есть какие-либо кириллические символы, они отображаются на веб-странице отлично.
3) У меня есть такая часть конфигурации в web.xml
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
....
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4) При отладке (до вставки в БД) в IDE кириллических символов отображения ОК, но после вставки, а затем выберите символы ' ????».
5) Я пытался установить 'Accept-Charset = UTF-8' атр для тега 'формы', пытался добавить characterEnc Одинг = UTF-8 в URL DB, попытался установить следующие свойства Hibernate:
<property name="hibernate.connection.charSet" value="UTF-8"/>
<property name="hibernate.connection.characterEncoding" value="UTF-8"></property>
<property name="hibernate.connection.useUnicode" value="true"></property>
Что еще может быть неправильно? Почему кириллические символы все еще становятся «????» ?!
p.s. Ubuntu 13,04, MySQL 5.5, Spring 3.2, Spring Roo 1.2.3
UPD: Funally получили решение: я сгенерировал ru_RU и ru_RU.UTF-8 локаль системы и установить локаль ru_RU.UTF-8. Подробные инструкции: here. И я не могу объяснить, почему все работает отлично !.
p.p.s. characterEncoding и useUnicode свойства от '5' не нужны. characterEncoding = параметр UTF-8, который необходимо добавить в строку подключения.