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 :

gerer les cardinalites avec hibernate


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Par défaut gerer les cardinalites avec hibernate
    bjr tout le monde .
    je voulais utiliser le framwork hibernate pour gerer une base de donnees mysql a partir d'une application java ,toutefois j'ai des petits problemes concernant l'utilisation de ce framwork .
    un petit exemple pour vous expliquer mes soucis :
    j'ai deux tables appartement et personne(regardez l'image jointe)
    alors comme vous voyez le power amc me genere deux tablex, chacune contient la cle primaire de l'autre table .
    je travaille avec netbeans 6.5 qui me genere automatiquement les fichiers de mapping et les classes persitantes :
    ==classe Personne:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    package data;
    import java.util.HashSet;
    import java.util.Set;
     
    /**
     * Personne generated by hbm2java
     */
    public class Personne  implements java.io.Serializable {
         private int idPer;
         private Appartement appartement;
         private String nomPer;
         private Set appartements = new HashSet(0);
     
        public Personne() {
        }
     
     
        public Personne(int idPer, Appartement appartement) {
            this.idPer = idPer;
            this.appartement = appartement;
        }
        public Personne(int idPer, Appartement appartement, String nomPer, Set appartements) {
           this.idPer = idPer;
           this.appartement = appartement;
           this.nomPer = nomPer;
           this.appartements = appartements;
        }
     
        public int getIdPer() {
            return this.idPer;
        }
     
        public void setIdPer(int idPer) {
            this.idPer = idPer;
        }
        public Appartement getAppartement() {
            return this.appartement;
        }
     
        public void setAppartement(Appartement appartement) {
            this.appartement = appartement;
        }
        public String getNomPer() {
            return this.nomPer;
        }
     
        public void setNomPer(String nomPer) {
            this.nomPer = nomPer;
        }
        public Set getAppartements() {
            return this.appartements;
        }
     
        public void setAppartements(Set appartements) {
            this.appartements = appartements;
        }
    }
    ==classe Appartement:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    package data;
    // Generated 25 avr. 2009 19:24:22 by Hibernate Tools 3.2.1.GA
     
     
    import java.util.HashSet;
    import java.util.Set;
     
    /**
     * Appartement generated by hbm2java
     */
    public class Appartement  implements java.io.Serializable {
     
     
         private int idAppar;
         private Personne personne;
         private Integer immeuble;
         private Set personnes = new HashSet(0);
     
        public Appartement() {
        }
     
     
        public Appartement(int idAppar) {
            this.idAppar = idAppar;
        }
        public Appartement(int idAppar, Personne personne, Integer immeuble, Set personnes) {
           this.idAppar = idAppar;
           this.personne = personne;
           this.immeuble = immeuble;
           this.personnes = personnes;
        }
     
        public int getIdAppar() {
            return this.idAppar;
        }
     
        public void setIdAppar(int idAppar) {
            this.idAppar = idAppar;
        }
        public Personne getPersonne() {
            return this.personne;
        }
     
        public void setPersonne(Personne personne) {
            this.personne = personne;
        }
        public Integer getImmeuble() {
            return this.immeuble;
        }
     
        public void setImmeuble(Integer immeuble) {
            this.immeuble = immeuble;
        }
        public Set getPersonnes() {
            return this.personnes;
        }
     
        public void setPersonnes(Set personnes) {
            this.personnes = personnes;
        }
    }
    alors pour inserer une ligne dans la table appartement je dois spécifier le personne qui habite cet appartement .et pour inserer une dans la table personne je dois specifier l'appartement de cette personne .
    c'est normale puisque dans les deux tables on a une clef étrangère .
    sous mysql j'utilise la commande : set foreign_key_checks=0 pour annuler la vérification des valeurs de la clef étrangère, mais avec hibernate je sais pos comment faire !je veux insérer des lignes dans la table appartement sans avoir besoin de spécifier la personne puisque comme vous avez remarque dans le mcd une appartement peut être vide ou habite par une personne au max(c'est juste un exemple ) .
    j'aimerais savoir aussi a quoi sert l''attribut personnes et appartement qui sont de type set
    je vous remercie de vouloir m'aider .
    Images attachées Images attachées  

  2. #2
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    Pour pouvoir répondre à ton problème il faut que ton nous donne ton fichier hibernate gérant le mapping puisque c'est lui qui gère ces options de mapping.

    Vu que tu n'utilise pas d'annotations on ne eut pas corriger ton problème uniquement à partir de tes classes

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Par défaut
    merci de votre reponse .
    voila ci dessous le fichier de mapping des deux tables appartement et personne et les classes correspondantes générées par hibernate .
    mon problème est que dans le constructeur de la classe appartement je dois spécifier la personne qui habite cet appartement aussi dans le constructeur de la classe personne je dois spécifier l'appartement habite par cette personne .
    vue que dans les cardinalites j'ai mentionner que une appartement peut être vide ,alors comment je peux insérer une ligne dans la table personne sans specifier une personne ?
    merci de votre aide
    Fichiers attachés Fichiers attachés

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Par défaut
    hello quelqu'un peut m'aider a comment insérer des lignes sans spécifier la valeur de la clef étrangère

Discussions similaires

  1. Comment dessiner les cardinalités avec visio 11?
    Par jijidiscover dans le forum Visio
    Réponses: 1
    Dernier message: 21/10/2010, 01h55
  2. les VUES avec hibernate
    Par touille dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/05/2008, 09h44
  3. Les problémes avec Hibernate
    Par hichem_enis dans le forum Struts 1
    Réponses: 7
    Dernier message: 11/04/2008, 13h00
  4. Réponses: 1
    Dernier message: 25/09/2006, 11h44
  5. Gérer les espaces avec SED
    Par byloute dans le forum Linux
    Réponses: 7
    Dernier message: 29/10/2005, 19h07

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