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 mapper une colonne de type ENUM ?


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Par défaut Comment mapper une colonne de type ENUM ?
    Bonjour,

    la question se trouve dans l'intitulé du sujet !

    Avez vous un exemple simple ?
    Avec un ENUM('TRUE','FALSE") par exemple ? (oui je sais, Boolean ça existe !)

    Merci d'avance !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Salut,
    Normalement tu n'as pas grand-chose à faire pour mapper un type Enum, parce que ça fait partie de la spécification Java Persistence, et Hibernate, en tant que provider JPA, l'implémente naturellement. Tout ce que tu as à faire, c'est d'ajouter l'annotation @Enumerated devant ton attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @Enumerated(EnumType.STRING)
    public MonEnum getAttr1() {
         return attr1;
    }
    Bien évidemment ceci n'est valable que si tu utilises Hibernate Annotations. Dans le cas contraire, il te faudrait créer un "custom UserType" pour mapper ton enum, je crois qu'ils en donnent un exemple dans la doc hibernate, il faut voir.

  3. #3
    Membre confirmé Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Par défaut
    Citation Envoyé par manblaizo
    Bien évidemment ceci n'est valable que si tu utilises Hibernate Annotations. Dans le cas contraire, il te faudrait créer un "custom UserType" pour mapper ton enum, je crois qu'ils en donnent un exemple dans la doc hibernate, il faut voir.
    Merci pour ta réponse !

    Je n'utilise pas Hibernate Annotations (j'ai des fichiers .hbm).
    Il faut donc que je crée un type spécial pour mapper mon ENUM ?!
    Je vais faire un petit tour sur la documentation officielle.

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Il me semble que c'est quand même la première chose à faire, avant de poster sur le forum ...
    La section "Persistent enum types" de la doc est des plus claires !

  5. #5
    Membre confirmé Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Par défaut
    J'utilise Hibernate 3.

    Version finale de la documentation :
    http://www.hibernate.org/hib_docs/v3/reference/fr/html/
    ils ne parlent pas de Persistent enum types !

    Par contre dans les versions précédentes :
    http://www.hibernate.org/hib_docs/re...ing-types-enum
    c'est le cas.

    Mon problème est que je ne trouve pas la classe à implémenter :
    net.sf.hibernate.PersistentEnum
    dans mon cas:
    org.hibernate.???

    J'ai essayé avec Search et Ctrl+Alt+o sous Eclipse, sans résultat !

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Et si tu jettais un coup d'oeil à ceci, ça pourrait t'inspirer :
    http://www.hibernate.org/265.html

  7. #7
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Citation Envoyé par KneXtasY
    J'utilise Hibernate 3.

    Version finale de la documentation :
    http://www.hibernate.org/hib_docs/v3/reference/fr/html/
    ils ne parlent pas de Persistent enum types !

    Par contre dans les versions précédentes :
    http://www.hibernate.org/hib_docs/re...ing-types-enum
    c'est le cas.

    Mon problème est que je ne trouve pas la classe à implémenter :
    net.sf.hibernate.PersistentEnum
    dans mon cas:
    org.hibernate.???

    J'ai essayé avec Search et Ctrl+Alt+o sous Eclipse, sans résultat !
    Ah oui dsl j'avais parlé un peu vite ...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/10/2009, 18h58
  2. Comment formater une colonne de type charactere ?
    Par NicolaTesla dans le forum Cognos
    Réponses: 4
    Dernier message: 27/05/2009, 18h15
  3. Réponses: 1
    Dernier message: 15/02/2008, 16h55
  4. [VB.Net/Dataview] Comment gérer un filtre sur une colonne de type date ?
    Par silatchom dans le forum Accès aux données
    Réponses: 3
    Dernier message: 07/07/2006, 19h28
  5. Réponses: 5
    Dernier message: 19/04/2005, 09h46

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