JPA 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>

Ответы

Ответ 1

используйте кодировку символов в свойстве файла persistence.xml

<property name="javax.persistence.jdbc.url" 
   value="jdbc:mysql://localhost:3306/blogdatabase?useUnicode=yes&amp;characterEncoding=UTF-8"/>

Ответ 2

Это помогло в Spring Boot:

spring.datasource.url=jdbc:mysql://localhost:3306/securitydb?useUnicode=yes&characterEncoding=UTF-8

Ответ 3

Это решило это красиво:

<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>