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 :

Enum et UserType


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Par défaut Enum et UserType
    Bonjour

    J'aurais besoin de clarifications au sujet d'un problème que je rencontre.

    J'ai consulté plusieurs livres et sites web et je n'arrive pas à comprendre pourquoi pour un type "Enum" j'ai besoin d'implémenter UserType puisque au sein d'Hibernate j'utilise l'annotation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     @Enumerated(EnumType.String)

    Bref quel est l'intérêt d'ajouter autant de code puisque cette annotation le fait toute seule?

    Merci

  2. #2
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Par défaut
    Si je ne me trompe pas si tu met @enumerated cela te sauvegarde directement ton enum en base de donne sur une colonne de type string donc si tu as:

    public enum ExampleEnum {
    CONST_A, CONST_B
    }

    Dans la base tu retrouve une colonne de type text avec comme valeur CONST_A et CONST_B

    En revanche si tu utilise le usertype tu peux definir comment sauver ton enum

    Si tu as maintenant

    public enum ExampleEnum {
    CONST_A(1), CONST_B(2)
    }

    En base de donnee tu peux vouloir sauver uniquement 1 ou 2 et pour cela tu aura besoin de declarer un usertype et que ton champs dans ton entite soi defini du meme type. Donc si tu utilise @enumerated il faut que dans ton entite tu es un champs

    private ExempleEnum exempleEnum;

    Si tu as mis @enumerated et un champs
    Private String exempleEnum;

    Tu aura besoin d un usertype pour savoir comment convertir ton enum en string...


    Je te conseille de toujours utiliser si possible le nom de ton enum en base car si tu a 20 constantes dans ton enum et que tu geres beaucop d enum dans ton application, quand tu va jouer des requetes en base tu ne saura plus ce que veux dire le statut 9 ou le statut 8, tu seras oblige de jongler entre le code et la base, ce qui n es pas toujours rapide...
    En esperant t avoir repondu correctement sinon quelqu un d autre pourra peut etre t aider.

    Bon courage.

Discussions similaires

  1. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  2. [VB.NET] Variable de type enum avec du string
    Par Mouse dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/01/2005, 18h22
  3. [MySQL] Valeur par défaut d'un type ENUM
    Par aliasjcdenton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/10/2004, 20h44
  4. enum??
    Par $grm$ dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 23/04/2004, 16h34
  5. [TABLE][ENUM] u champs à choix multiple ?
    Par narmataru dans le forum SQL
    Réponses: 2
    Dernier message: 04/11/2003, 10h25

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