Ответ 1
используйте кодировку символов в свойстве файла persistence.xml
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3306/blogdatabase?useUnicode=yes&characterEncoding=UTF-8"/>
У меня есть простое веб-приложение, в котором я использую JPA.
У меня есть объект под названием BlogEntry.
Когда я отправляю новый BlogEntry, когда я отлаживаю свое приложение, я вижу, что символы utf8 просто прекрасны.
Например
em.persist(entity);
В этой строке, если я отлаживаю, например:
entity.getTitle()
Я могу успешно увидеть символы utf-8 в среде IDE. (например, "", или çç)
Кроме того, у моей базы данных есть сортировка UTF8, и я могу вставлять символы utf-8 просто отлично с помощью sql, используя "INSERT INTO..."
Однако, с JPA, символы сохраняются как????
Почему это может быть?
С уважением.
Вот мой persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="Persistence">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.tugay.blog.core.model.Blogentry</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/blogdatabase"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="aabbccdd"/>
</properties>
</persistence-unit>
</persistence>
используйте кодировку символов в свойстве файла persistence.xml
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3306/blogdatabase?useUnicode=yes&characterEncoding=UTF-8"/>
Это помогло в Spring Boot:
spring.datasource.url=jdbc:mysql://localhost:3306/securitydb?useUnicode=yes&characterEncoding=UTF-8
Это решило это красиво:
<property name="hibernate.connection.useUnicode" value="true" />
<property name="hibernate.connection.characterEncoding" value="UTF-8" />
Изменить: с помощью спящего режима 4.3.1 это работает:
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">utf-8</property>