Les caractères JPA utf-8 n'ont pas persisté

j'ai une application web simple où j'utilise JPA.

j'ai une entité appelée BlogEntry.

quand je soumets un nouveau BlogEntry, quand je debug ma demande je vois les caractères utf8 très bien.

Par exemple

em.persist(entity);

Dans cette ligne, si je debug par exemple:

entity.getTitle()

je peux réussi à voir les caractères utf-8 dans l'IDE. ( comme"", ou çç )

aussi, ma base de données a la collation UTF8 et je peux insérez des caractères utf-8 très bien avec sql en utilisant comme " INSERT INTO..."

cependant, avec JPA, les caractères sont tendus comme ????

Pourquoi cela pourrait-il être?

Cordialement.

Voici ma persévérance.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>
17
demandé sur Koray Tugay 2013-08-10 19:22:29

3 réponses

utilisation de l'encodage des caractères dans la propriété de persistance.fichier xml

<property name="javax.persistence.jdbc.url" 
   value="jdbc:mysql://localhost:3306/blogdatabase?useUnicode=yes&amp;characterEncoding=UTF-8"/>
39
répondu muthukumar 2013-08-16 09:41:45

cela a aidé dans la botte de printemps:

spring.datasource.url=jdbc:mysql://localhost:3306/securitydb?useUnicode=yes&characterEncoding=UTF-8
14
répondu ACV 2015-09-14 21:31:39

Cela a résolu bien:

<property name="hibernate.connection.useUnicode" value="true" />
<property name="hibernate.connection.characterEncoding" value="UTF-8" />

Edit: avec hibernate 4.3.1 cela fonctionne:

<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">utf-8</property>
12
répondu Koray Tugay 2015-08-07 07:22:31