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>
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&characterEncoding=UTF-8"/>
cela a aidé dans la botte de printemps:
spring.datasource.url=jdbc:mysql://localhost:3306/securitydb?useUnicode=yes&characterEncoding=UTF-8
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>