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 :

Deux mappings pour une seule et même classe


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 37
    Points : 19
    Points
    19
    Par défaut Deux mappings pour une seule et même classe
    Comment faire ce mapping ?

    une table "employeur" liée à une table "adresse employeur"
    une table "salarieliée" à une table "adresse salarie"
    les tables "adresse employeur" et "adresse salarie" sont identique sauf pour la ref vers "employeur" ou "salarie"
    Donc je voudrai faire deux mapping des tables "adresse employeur" et "adresse salarie" sur un même objet "adresse"

    Mais dans le mapping de "employeur" et "salarie" comment leur dire que c'est tel ou tel mapping en fonction de l'objet "adresse"

  2. #2
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Tu prend le truc a l'envers :
    un employeur a une adresse et une seule => asso 1 a 1 unidirectionnel
    un salarié a une adresse et une seule => asso 1 a 1 unidirectionnel

    Dans ta table employeur_adresse tu aura, un champ employeuriD unique et un champ adresseId unique correspondant a une adresse dans ta table adresse. et de meme pour salarie_adresse. Si c'est confu pour toi va voir la doc hibernate, a la fin il y a des exemple de mapping.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    En fait un collègue viens de me donner la réponse il faut rajouter aux mappings la propriété entity-name des deux cotés de façon que "employeur" soit relié à la table "adresse employeur" et non pas "adresse salarie" et de même pour "salarié" avec "adresse salarie"
    car "adresse salarie" et "adresse salarie" mappent le même objet adresse

  4. #4
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Voila t'as tout compris ^^ Maiis le entity name n'est pas forcément necessaire. En fait ça dépend comment tu modélise. J'ai fais des chose de ce genre, et je n'ai jamais eu ce genre de problème. Le truc C'est que toutes les adresse seront dans la table adresse et dans adresse_employé y aura seulement les adresse des employé (relié par les clé primaires des deux cotés).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Deux Activity pour une seule valeur
    Par Davesique dans le forum Android
    Réponses: 1
    Dernier message: 22/06/2013, 23h51
  2. [XL-2007] Ajout de deux séries pour une seule courbe
    Par Kimy_Ire dans le forum Excel
    Réponses: 0
    Dernier message: 12/12/2012, 18h11
  3. comment utiliser deux units pour une seule fiche
    Par dmognin dans le forum Débuter
    Réponses: 8
    Dernier message: 05/02/2010, 16h07
  4. [LabVIEW 8.6]Deux boutons pour une seule commande.
    Par bobico dans le forum LabVIEW
    Réponses: 4
    Dernier message: 08/06/2009, 16h03
  5. [POO] Deux constructeurs pour une même classe
    Par amika dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2006, 16h31

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