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

JPA Java Discussion :

Attribut de type enum dans un objet persistant


Sujet :

JPA Java

  1. #1
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut Attribut de type enum dans un objet persistant
    Bonjour,
    j'ai une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Entity
    @Table(name="PERSISTANT")
    public class Persistant {
     
    	@Column(name = "TYPE_MAJ", length = 16, nullable = true)
    	private TypeAccesDonneeEnum typeMaj;
    ...
    }
     
    public enum TypeAccesDonneeEnum {
    	CREATION,
    	MODIFICATION,
    	SUPPRESSION
    }
    Je souhaiterais que dans la table PERSISTANT, le libellé de l'attribut "typeMaj" dans la colonne TYPE_MAJ apparaisse en clair (ex. CREATION).
    Quel serait le comportement par défaut avec JPA ?
    Comment faire en sorte que le libellé apparaisse en clair dans la table ?
    Merci pour vos réponses

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 960
    Points : 4 389
    Points
    4 389
    Par défaut
    Citation Envoyé par herve91 Voir le message
    Bonjour,
    j'ai une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Entity
    @Table(name="PERSISTANT")
    public class Persistant {
     
    	@Column(name = "TYPE_MAJ", length = 16, nullable = true)
    	private TypeAccesDonneeEnum typeMaj;
    ...
    }
     
    public enum TypeAccesDonneeEnum {
    	CREATION,
    	MODIFICATION,
    	SUPPRESSION
    }
    Je souhaiterais que dans la table PERSISTANT, le libellé de l'attribut "typeMaj" dans la colonne TYPE_MAJ apparaisse en clair (ex. CREATION).
    Quel serait le comportement par défaut avec JPA ?
    Comment faire en sorte que le libellé apparaisse en clair dans la table ?
    Merci pour vos réponses
    JPA n'a pas de UserType mais si vous utilisez Hibernate comme ORM cela fait partie de ces + …

    (@Enumerated stockera des int …)

  3. #3
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Par défaut @Enumerated stocke des int.
    L'annotation @Enumerated prend un EnumType en parametre qui par défaut vaut EnumType.ORDINAL

    on peut utiliser l'annotation : @Enumerated(EnumType.STRING) vous aurez le résultat recherché sans être obliger de sortir de la spec JPA

Discussions similaires

  1. Type enum dans une classe
    Par arthurembo dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2009, 13h38
  2. attribut de type enum
    Par enzostar dans le forum Langage
    Réponses: 9
    Dernier message: 29/03/2009, 17h14
  3. Réponses: 2
    Dernier message: 29/05/2007, 17h49
  4. Réponses: 3
    Dernier message: 02/05/2006, 16h12
  5. [9i]le type ENUM dans oracle???
    Par hoaxpunk dans le forum Oracle
    Réponses: 2
    Dernier message: 10/02/2006, 16h33

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