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 :

Problème mapping hibernate


Sujet :

Hibernate Java

  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 Problème mapping hibernate
    Bonjour, j'ai une classe A et une classe B, la relation entre A et B est many to many, j'ai besoin d'une collection B dans A et vice versa, au niveau sql j'aurais une 3eme table résultante AB, mais cette table est en relation avec d'autre classe metier cad j'aurais besoin de son id AB, comment puis je faire ?

    Proposition :

    puisque j'aurais besoin uniquement de l'id_AB (pas d'autre attribut dans la classe AB, id_AB n'est pas nécessairement composé de id_A et id_B) dans d'autre classe métier, j'ai pensé a persisté la classe AB avec un id_AB qui s'incrémente automatiquement, et créer une collection B dans A, et une collection A dans B (j'aurais besoin de ces collection), et au niveau mapping la classe metier AB et les collection A dans B et B dans A correspondent a la meme table ???

    Merci de m'aiderv

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Dans la mesure où la table AB est en relation avec d'autres tables, on doit la mapper dans une classe.

    Je ferais :
    - une classe AB contenant un objet B et un objet A
    - une classe A avec une collection de AB
    - une classe B avec une collection de AB

  3. #3
    Membre Expert
    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
    Par défaut
    La relation many-to-many gère bien la table AB.
    Il n'y a pas besoin de créer une classe pour AB, si tu n'as pas d'autre attribut que la clef primaire.
    Voir documentation avec exemple.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    j'aurais une 3eme table résultante AB, mais cette table est en relation avec d'autre classe metier cad j'aurais besoin de son id AB
    Fr1man, sans classe AB, comment gères-tu les relations de AB avec les autres classes ?

  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
    merci plsavary et fr1man pour vos réponse, effectivement plsavary la classe AB aura une relation avec d'autre classe métier donc j'aurais besoin de son id,
    pour la solution que tu a proposé "plsavary", c'est ce que j'ai fait exactement avec une relation one to many entre (A et AB et entre B et AB), mais j'ai du mal à récupérer la collection B dans A (et A dans B)?

    tout exemple sera la bienvenue !

  6. #6
    Membre Expert
    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
    Par défaut
    @ plsavary
    Si tu n'as rien d'autre chez les deux clefs étrangères A et B dans ta table AB, tu n'as pas besoin d'objet AB. Tu gères tes collections de chaque côté.

    Si, tu as besoin d'infos supplémentaires, on peut dans ce cas écrire deux relations one-to-many avec la classe d'association AB.

    C'est bien expliqué dans la doc.

  7. #7
    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
    mais j'aurais besoin de l'id AB parce que cette classe est lié avec d'autres classe métiers autrement dis j'aurais besoin de la 'id AB comme clé étrangère dans d'autres tables ????

  8. #8
    Membre Expert
    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
    Par défaut
    Avec hibernate, tu ne manipules pas directement les clefs de tes tables.
    Donc je me répète, si ta table AB nécessite soit des infos supplémentaires (en plus de la clef), soit a une existence propre dans ton modèle de données, tu peux en faire une classe, sinon, pas besoin.

  9. #9
    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
    mais cette table (classe métier) a des relations many to many ou many to one avec d'autre classes métiers , dans ce cas comment puis je faire ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    En supposant que tu gardes la classe AB (je ne sais pas si tu as tranché...)

    On récupère les objets B d'un objet A comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select ab.b
    from AB ab
    where ab.a.id = ?
    Ca répond à ta question ?

  11. #11
    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
    mais je sais pas si je dois la garder ou NON ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Si je comprend bien tu as d'autres tables qui pointent vers la table AB.
    Par exemple une table C avec une clé étrangère id_ab vers la table AB.

    Si c'est le cas, je ne vois pas d'autres solution que de créer cette classe AB.

    (A moins que fr1man connaisse une solution, mais là je ne vois vraiment pas)

  13. #13
    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 plsavary, c'est ce que j'ai fait exactement j'ai créer la classe métier ab, mais par exemple j'aurais besoin d'une collection b dans a, et vise versa, est ce que je vais les créer directement ou je vais passer par la classe métier ab qui contient un objet a et un objet b ?


    merci

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    En fait tu auras :
    - une collection de ab dans a (OneToMany)
    - une collection de ab dans b (OneToMany)
    - un objet a dans ab (ManyToOne)
    - un objet b dans ab (ManyToOne)

  15. #15
    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
    mais est ce que je peux avoir une collection b dans a et une collection a dans b ?

Discussions similaires

  1. [Eclipse Indigo] Problème mapping Hibernate
    Par Dober dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 07/11/2011, 18h33
  2. Problème Mapping Hibernate
    Par nono44200 dans le forum Hibernate
    Réponses: 1
    Dernier message: 31/01/2008, 13h58
  3. [Data] Problème de mapping hibernate
    Par erwan.bodere dans le forum Spring
    Réponses: 1
    Dernier message: 28/04/2007, 20h43
  4. [hibernate]Problème mapping classe association
    Par jsl1 dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/06/2006, 17h27
  5. [Hibernate & Eclipse] problème mapping
    Par sonia_ppr dans le forum Hibernate
    Réponses: 4
    Dernier message: 04/05/2006, 14h32

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