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 :

Mapping d'une association unidirectionnelle one-to-one sur une clé étrangére


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Mapping d'une association unidirectionnelle one-to-one sur une clé étrangére
    Bonjour,
    En effet j'essaye d'implemeter le mapping d'une association unidirectionnelle one to one sur une cle etrangere.
    Ef effet j'ai une table personne(id_person,id_adress) et une table adress(id_adress,des_adress,code_postal).
    Une personne ne peut avoir qu'une seule adresse.
    J'ai implementer les classes de persistnces Person respectivement Adress comme suit
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    package com.benhassine.beans;
     
    public class Person {
        private String id;
        private Integer address;
        /**
         * 
         */
        public Person() {
            super();
        }
        /**
         * @param id
         * @param address
         */
        public Person(String id, Integer address) {
            super();
            this.id = id;
            this.address = address;
        }
        /**
         * @return the id
         */
        public String getId() {
            return id;
        }
        /**
         * @return the idAdress
         */
        public Integer getAddress() {
            return address;
        }
        /**
         * @param id the id to set
         */
        public void setId(String id) {
            this.id = id;
        }
        /**
         * @param idAdress the idAdress to set
         */
        public void Integer(Integer address) {
            this.address = address;
        }
     
    }
     
    package com.benhassine.beans;
     
    public class Address {
        private Integer id;
        private String desAdress;
        private Integer codePostal;
        /**
         * 
         */
        public Address() {
            super();
            // TODO Auto-generated constructor stub
        }
        /**
         * @param id
         * @param desAdress
         * @param codePostal
         */
        public Address(Integer id, String desAdress, Integer codePostal) {
            super();
            this.id = id;
            this.desAdress = desAdress;
            this.codePostal = codePostal;
        }
        /**
         * @return the codePostal
         */
        public Integer getCodePostal() {
            return codePostal;
        }
        /**
         * @return the desAdress
         */
        public String getDesAdress() {
            return desAdress;
        }
        /**
         * @return the id
         */
        public Integer getId() {
            return id;
        }
        /**
         * @param codePostal the codePostal to set
         */
        public void setCodePostal(Integer codePostal) {
            this.codePostal = codePostal;
        }
        /**
         * @param desAdress the desAdress to set
         */
        public void setDesAdress(String desAdress) {
            this.desAdress = desAdress;
        }
        /**
         * @param id the id to set
         */
        public void setId(Integer id) {
            this.id = id;
        }
     
     
    }
    Ci-apres mes fichiers de mapping personne.hbm.xml respectivement adresse.hbm.xml
    Code xml : 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
     
    <class name="com.benhassine.beans.Person">
        <id name="id" column="id_person">
            <generator class="native"/>
        </id>
        <many-to-one name="address" 
            column="id_address" 
            unique="true"
            not-null="true"/>
    </class>
     
     
    <class name="com.benhassine.beans.Address">
    <id name="id" column="id_address">
    <generator class="native"/>
    </id>
    <property name="desAdress" column="des_adress" />
    <property name="codePostal" column="code_postal"  />
    </class>

    Dans le fichier Hibernate je renseigne mes fichiers de mapping comme suit
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <!-- This section is not generated automatically  -->
            <!-- Author : BEN HASSINE Med Ali -->
            <!-- Date : 04/08/2007 -->
            <!-- Mapping Files -->
            <mapping resource="com/benhassine/beans/adresse.hbm.xml"/>
            <mapping resource="com/benhassine/beans/personne.hbm.xml"/>

    Je m'attendais que j'aurais pas de probleme puisque je me suis appuye pour construire mon exemple sur le manuel de reference de hibernate http://www.dil.univ-mrs.fr/~massat/docs/hibernate-3.1/reference/fr/html_single/#assoc-unidirectional-121
    Mais malheuresement quand j'essaye de generer les scripts de creation des tables par le biais de [new SchemaExport((new Configuration()).configure()).create(true, true);] une exception de mapping est levee dont le message est le suivant : An association from the table Person refers to an unmapped class: java.lang.Integer
    Pour vous bien orienter java.lang.Integer cest en fait le type de la cle etrangere (voir classe de persistance Adress), en effet si je change le type par String le message de l'exception est devenu :
    An association from the table Person refers to an unmapped class: java.lang.String

    Je suis plante depuis 2 jours et je vois pas ou est l'erreur exactement.
    Au secours SVP.

    NB: Je m'excuse de ne pas avoir mis les accents sur les (e).

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ce ne serait pas plutôt comme ça dans ta class Person:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private Adress address;
    ?

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

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Totalement d'accord

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/06/2014, 11h50
  2. Liste null sur une association many-to-one
    Par nicolas_isi dans le forum Hibernate
    Réponses: 4
    Dernier message: 30/04/2010, 16h32
  3. Une association unidirectionnelle basée sur Set
    Par grizzz dans le forum Hibernate
    Réponses: 2
    Dernier message: 20/09/2008, 08h18
  4. Bloqué sur une association
    Par benjhe dans le forum Schéma
    Réponses: 4
    Dernier message: 31/03/2006, 15h49
  5. Requete sur une table qui pointe 2 fois sur une autre
    Par Satch dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/01/2006, 08h48

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