IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Comment mettre par défaut l'utf-8 quand on créé une table avec Hibernate - persistence


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Par défaut Comment mettre par défaut l'utf-8 quand on créé une table avec Hibernate - persistence
    Bonjour à tous, et joyeux noël

    Comme le dit le titre, j'aimerais savoir comment mettre par défaut l'utf-8 quand on créé une table avec java persistence...
    A chaque fois que je mets ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="hibernate.hbm2ddl.auto" value="update" />
    En create, il me remet le charset en latin1_swedish sur toutes mes tables ...

    Y-a t'il une annotation, une modification à faire dans la librairie ou même une astuce ?

    Je vous remercie d'avance pour l'aide que vous pourriez m'apporter !

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    essayez en ajoutant ces propriétés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    hibernate.connection.charSet utf8
    hibernate.connection.useUnicode true
    ou

    en ajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ?characterEncoding=UTF-8
    à l'URL de connection.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Par défaut
    Merci pour ton aide !

    Malheureusement, ça ne marche pas ...

    Voici la construction de mon fichier persistence.xml (j'ai donc ajouté le charset sans succès):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
        <persistence-unit name="SupSTA-PU" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <properties>
                <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
                <property name="javax.persistence.jdbc.user" value="root" />
                <property name="javax.persistence.jdbc.password" value="" />
                <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/SupSTA" />
                <property name="eclipselink.cache.shared.default" value="false"/>
                <property name="hibernate.hbm2ddl.auto" value="create" />
                <property name="hibernate.connection.useUnicode" value="true" />
                <property name="hibernate.connection.charSet" value="UTF-8" />
                <property name="hibernate.connection.charSet" value="utf8" />
                <property name="hibernate.connection.characterEncoding" value="UTF-8" />
                <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            </properties>
        </persistence-unit>
    </persistence>

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Par défaut
    Bon en fait, j'ai fait quelque chose de très bête:
    J'ai créé ma table directement en utf-8, et comme ça, lorsque je persist, avec hibernate configuré en create, les tables se créent automatiquement en utf8_general_ci.

    Dernier petit problème:
    Lorsque j'ajoute une nouvelle ligne directement via phpmyadmin, pas de soucis, la ligne inséré n'a pas de problèmes avec les accents...
    Mes pages html sont bien en utf-8, mais lorsque j'ajoute une donnée via persistence manager, l'encodage rate, et les caractères spéciaux ne passent pas :/

    Voilà à quoi ressemble mon persistence.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
        <persistence-unit name="SupSTA-PU" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <properties>
                <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
                <property name="javax.persistence.jdbc.user" value="root" />
                <property name="javax.persistence.jdbc.password" value="" />
                <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/SupSTA" />
                <property name="eclipselink.cache.shared.default" value="false"/>
                <property name="hibernate.hbm2ddl.auto" value="update" />
                <property name="hibernate.connection.CharSet" value="utf8" />
                <property name="hibernate.connection.useUnicode" value="true" />
                <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            </properties>
        </persistence-unit>
    </persistence>

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/SupSTA?characterEncoding=UTF-8" />

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Par défaut
    J'avais déjà essayé, et sans succès non plus :/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. LAMP - Mettre par défaut innoDB
    Par Ang3x dans le forum Installation
    Réponses: 0
    Dernier message: 09/10/2008, 10h35
  2. Comment ajouter par défaut une valeur dans un champ?
    Par zouloute dans le forum Access
    Réponses: 2
    Dernier message: 04/03/2008, 07h53
  3. [phpMyAdmin] Comment mettre par défaut la date courante à un champ (DATETIME) sous phpMyAdmin ?
    Par vandeyy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 31/01/2007, 11h16
  4. mettre par défaut un champ dans liste déroulante
    Par zouzou1010 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/05/2006, 14h12
  5. Réponses: 6
    Dernier message: 16/11/2005, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo