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 :

mettre un deuxieme champ en increment


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut mettre un deuxieme champ en increment
    Bonjour, dans une classse métier, j'ai id et numReception qui doivent s'incrementer automatiquement, le premier c'est pour la base de donnée et le deuxieme c'est un champ qui doit s'incrémenter automatiquement, ma question est comment puis je mettre ce deuxieme champ en increment comme l'identifiant ?

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Personnellement, je passerais par un listener pre-insert pour générer la valeur.
    Via les annotations, ce serait @PrePersist devant la méthode

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut
    merci pour la réponse OButterlin, mais j'ai rien compris, peux tu m'expliquer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <hibernate-mapping>
     
      <class name="INTgestiondonnee.demande.metier.entite.Demande" table="HOMO_DEMANDE">
     
       	  <id name="idDemande" column="ID_DEMANDE">
       	  	<generator class="increment"></generator>
       	  </id>
     
    	  <property name="numReception" column="NUM_RECEPTION" unique="true"></property>
    	  <property name="numDossier" column="NUM_DOSSIER"></property>
    	  <property name="dateReception" column="DATE_RECEPTION"></property>
    	  <property name="centreImmatric" column="CENTRE_IMMATRIC"></property>
    	  <property name="statut" column="STATUT"></property>
    	  <property name="dateDepart" column="DATE_DEPART"></property>
    	  <property name="annee" column="ANNEE"></property>
     
    	   <set name="rejets" inverse="true">
             <key column="ID_DEMANDE"/>
             <one-to-many class="INTgestiondonnee.rejet.metier.entite.Rejet"/>
          </set>
     
    	  <many-to-one name="vehicule" column="ID_VEHICULE"></many-to-one>
     
      </class>
    </hibernate-mapping>

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ci-joint un exemple avec les annotations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    @Entity
    @Table(name = "person", schema = "test")
    public class Person implements java.io.Serializable
    {
        private static final long serialVersionUID = 1;
        private Integer uid;
        private String first_name;
        private String last_name;
     
        public Person()
        {
            super();
        }
        public Person(Integer uid, String first_name, String last_name)
        {
            super();
            this.uid = uid;
            this.first_name = first_name;
            this.last_name = last_name;
        }
     
        @Id
        @GeneratedValue
        @Column(name = "UID", unique = true, nullable = false, insertable = true, updatable = true)
        public Integer getUid()
        {
            return this.uid;
        }
        public void setUid(Integer uid)
        {
            this.uid = uid;
        }
     
        ...
     
        @PrePersist
        public void beforePersist()
        {
            /*
             * Placer ici les affectations automatiques et les contrôles
             * Pour annuler la transaction, il suffit de lancer une Exception
             */
     
        }  
    }
    Lorsque l'entity manager va faire une opération persist(...) sur un objet Person, la méthode beforePersist() sera appelée automatiquement te laissant la possibilité de contrôler ou d'affecter des propriétés.

    Pour l'équivalent avec les fichiers hbm, regarde la documentation Hibernate.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut
    y a t'il quelqu'un qui connait comment on peut mettre un autoincrement sur une propriété en plus de l'id ?

Discussions similaires

  1. champ auto increment
    Par seb92 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/07/2004, 16h12
  2. Réponses: 3
    Dernier message: 09/07/2004, 10h23
  3. Champ auto increment
    Par webbulls dans le forum Bases de données
    Réponses: 9
    Dernier message: 21/04/2004, 16h07
  4. Remise à zero champ auto-incrementé (SQL Server)
    Par James85 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/01/2004, 09h23
  5. Nom du champs auto-incrementé
    Par norroy dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 18h30

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