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 :

Traduction de données de type caractère dans Hibernate


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Par défaut Traduction de données de type caractère dans Hibernate
    Bonjour,
    je suis un novice dans hibernate (nhibernate plus précisemment), et dans le fichier de configuration je cherche la propriété équivalente à 'Translate=False' (dans une chaine de connexion sql server).

    car dans la base où pointe mes fichiers nhibernate, les caractères ne sont pas traduis et ils le sont par défaut dans nhibernate, du coup j'ai les caractères spéciaux qui apparaissent d'une façon bizarre. (de la même façon que quand j'active l'option 'traduire les données de type caractère' dans sql server).

    merci par avance pour vos contributions.

    ps: la base donnée sert pour plusieurs applications qui marchent si on traduit pas les données de type caractères. si j'active cette option, les applications existantes interpreteront les caractères de façon fausse, d'où mon intéret à ne pas changer la configuration de ma BD

  2. #2
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Si tu utilise nHibernate, alors c'est que tu fait du .NET.
    Je te conseil plutôt de poster sur le forum .NET alors, car je ne sais pas si la gestion des caractère spéciaux se fait de la même façon en .NET et en JAVA.

    A ma connaissance, Hibernate ne va pas 'encoder' ou 'pas encoder' les caractère spéciaux, mais celà se passe au niveau de l'API JDBC de JAVA. Pour moi le fonctionnement est le suivant :
    - ta base de données utilise un encoding-type (souvent UTF-8)
    - Hibernate se charge de via les PreparedStatement de JAVA d'encoder les caractère ' et \ qui sont utilisé par le language SQL de manière spéciale.
    - Pour les XML, il faut utiliser le même encoding que ta base de données

    Donc celà dépend aussi de ce que tu appel caractère spéciaux. Est-ce tout les caratère accentué, spéciaus, ... Dans ce cas là on parle d'encoding de base de données. Ou est-ce les caractères utilisé au niveau des languages (', \), dans ce cas là c'est géré par l'API JDBC pour JAVA.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Par défaut
    tout d'abord je te remercie pour ta réponse.

    quand je parle de caractères spéciaux, il s'agit de tous les caractères accentués et symboles et donc je ne sais pas comment configurer nhibernate pour qu'il les interprète de la même façon que la base de données.

    sinon dans le forum .NET y a pas beaucoup d'infos à ce sujet.

    cdlt.

  4. #4
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Là je ne peut pas t'aider, j'utilise depuis longtemps hibernate et je n'ai jamais mis d'encoding spécifique pour les caractère spéciaux (à part lors de la création de fichier XML enregistré dans des CLOB). J'utilise du coté de la base de données un encoding de type UTF-8.

    Sinon, je ne sais pas si c'est lié, mais hiebrnate utilise des dialect pour dialoguer avec la base de données, vérifie que tu utilise bien le bon (je ne sais pas lequels c'est pour SQLServer).

    Voici dans ton fichier hibernet.cfg.xml la ligne à mettre (exemple donné pour oracle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>

  5. #5
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Par défaut
    j'utilise cette propriété:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="hibernate.dialect">NHibernate.Dialect.MsSql7Dialect</property>
    sachant que j'ai essayé avec celle de SQL2000 et ça donne le même résultat.

  6. #6
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Je te conseil quand même d'utiliser le dialect de ta base de données.

    Mais est-tu sure que la propriété doit être hibernate.dialect et pas juste dialect?

    Sinon, je ne peut plus t'aider ... désolé

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2008, 21h10
  2. Réponses: 3
    Dernier message: 01/09/2008, 13h46
  3. Réponses: 1
    Dernier message: 12/06/2008, 20h07
  4. Réponses: 5
    Dernier message: 27/06/2007, 17h08
  5. Réponses: 4
    Dernier message: 29/08/2006, 14h52

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