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 :

À propos des attributs annotés @Id


Sujet :

Hibernate Java

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 144
    Points : 645
    Points
    645
    Par défaut À propos des attributs annotés @Id
    Bonjour,

    j'ai une petite question à propos des champs @Id dans Hibernate. J'ai toujours mis ces champs comme private, et sans setter, seulement un getter. Pourtant, hibernate arrive à les modifier. Comment peut-il faire ? J'ai beau me creuser la tête, je ne vois pas comment il fait.

    Merci à celui qui saura satisfaire ma curiosité !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Il le fait par réflection.

  3. #3
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    en effet , hibernate genere une valeur pour ton objet à inserer dans la base données à l'aide d'une table sequence, dans tu n'as pas besoin de lui données une valeur, et au mon de la récupation de ton objet pour la visualisation par exemple, hibernate charge compeletement ton objet.

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 957
    Points : 4 386
    Points
    4 386
    Par défaut
    Citation Envoyé par Sun03 Voir le message
    en effet , hibernate genere une valeur pour ton objet à inserer dans la base données à l'aide d'une table sequence, dans tu n'as pas besoin de lui données une valeur, et au mon de la récupation de ton objet pour la visualisation par exemple, hibernate charge compeletement ton objet.
    Hibernate génère la clé primaire selon la règle de génération spécifiée…

    et quand rien n'est spécifié, il utilise la règle par défaut en fonction du dialecte (donc du SGBD et du type du champ @Id)… qui s'avère être parfois une table sequence pour le cas le plus utilisé dans les exemples (@Id Long …), (le "strategy" de @GeneratedValue vaut AUTO par défaut…)

    Rien ne vous empêche d'utiliser d'autres stratégies de génération de clé primaire…
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    @org.hibernate.annotations.GenericGenerator(
        name = "hibernate-uuid",
        strategy = "uuid"/* ,
        parameters={@Parameter(value="-", name="separator")} */ 
    )
     
    …
     
    @Id
    @Column(name="uuid", length=32) // 36 if you use separator
    @GeneratedValue(generator = "hibernate-uuid")
    protected String	itsUUID	;
    …

  5. #5
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    c'est claire...

    J'ai une petite question,

    si on souhaite avoir une clé de type string? est ce que c'est possible et comment si oui?


    Merci d'avance


Discussions similaires

  1. [MVC] SpringMVC Annotation gestion des attributs
    Par ray_fab dans le forum Spring Web
    Réponses: 1
    Dernier message: 24/12/2010, 21h30
  2. Sauvegarde des attributs de texte en fichier ini
    Par Raylemon dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2003, 21h28
  3. A propos des 'File management Functions' de Windows
    Par znaidi dans le forum Windows
    Réponses: 3
    Dernier message: 01/04/2003, 16h01
  4. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  5. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39

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