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 :

Hibernate et les relations pere/enfant


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 40
    Points
    40
    Par défaut Hibernate et les relations pere/enfant
    Bonjour,

    les relations faites pour gérer les clés étrangères dans le framework Hibernate crée des navigabilités à double sens :

    class Pere {
    Set lesFils = new HashSet();

    }

    class Fils {
    Pere monPere;

    }

    Nous mettons en place un code qui nous permet de copier un objet Hibernate dans
    un DTO automatiquement. Le code ne fonctionne pas à cause de cette double navigabilité
    qui crée un cycle infin (ou une boucle folle). Ma question est comment faire
    pour gérer les relations pere/fils dans Hibernate sans cette double navigabilité ?

    -- Seb --

  2. #2
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    la double navigabilité n'est pas une obligation dans hibernate
    la relation peut être définie dans un sens seulement

    cependant si tu as besoin de cette double navigabilité, tu peux utiliser un flag lors du mapping vers tes value objects pour justement eviter une boucle infinie
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 40
    Points
    40
    Par défaut
    Si tu pouvais me dire comment tu mappes alors la relation ça me ferait pas mal avancer! C'est sutout cette solution car je ne veux que des navigabilité unidirectionnelle.

  4. #4
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    tu définie ta relation seulement dans le sens où tu en as besoin mais pas dans l'autre sens

    ex : pere contient ses fils mais les fils ne savent pas qui est leur pere

    en fait tu ne définie pas la relation inverse="true"
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 40
    Points
    40
    Par défaut
    Le fait de changer le flag true à false de la propriété inverse n'est pas suffisante. Dans la doc d'Hibernate
    il parle de composit-element. C'est à dire un élement contenu dans un autre et dise que c'est une autre
    solution pour representer les relations. Mais je me suis aussi rendu compte qu'avec Middlegen tu peux
    préciser la navigabilité des relations. Il génère en conséquent les HBM et les POJOs appropriés. Et c'est
    parfait. Merci de ton aide.

  6. #6
    Membre actif Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 239
    Points
    239
    Par défaut
    je ne parlais pas de positionner le flag à false mais tout simplement de ne pas définir la relation
    En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 40
    Points
    40
    Par défaut
    Tout à fait et ceci est definissable avec Middlegen.

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

Discussions similaires

  1. modeliser relation pere fil
    Par flawer dans le forum Débuter
    Réponses: 20
    Dernier message: 12/12/2005, 11h59
  2. Les relations
    Par Cablan dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 13h27
  3. Réponses: 13
    Dernier message: 14/09/2005, 16h21
  4. Réponses: 4
    Dernier message: 06/09/2005, 09h58
  5. [Relations] afficher les relations entre 2 tables
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 14/01/2004, 17h07

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