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 :

Objets persistants "identiques"


Sujet :

Hibernate Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 477
    Par défaut Objets persistants "identiques"
    Bonjour à tous,

    Je me met à Hibernate et je rencontre un problème sur le principe de fonctionnement :

    Soit deux objets A et B présents en BD. L'objet A référence B :
    A-->B

    Quand je lance ma reqête HQL, je récupère donc une liste de la forme :
    A1-->B1
    A2-->B2
    A3-->B3

    Il peut arriver que plusieurs objets A référencent un même enregistrement en BD de l'objet B. Nous avons donc :
    A1-->B1
    A2-->B1
    A3-->B1

    D'où ma question :
    - B1 est instancié 3 fois, ou
    - les 3 objets A référencent-ils le même objet B1?

    Lors d'un 'save', 3 enregistrements de B1 sont créés en BD. On dirait que l'enregistrement lié à B1 est mis à jour, et que deux autres enregistrements B1' et B1'' sont créés. Quelle est la règle de fonctionnement?

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Il y a une instance de B1 par session. Donc si tu récupère A1, A2 et A3 dans la même session, il n'y a qu'un seul B1.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 477
    Par défaut
    Citation Envoyé par the-gtm
    Il y a une instance de B1 par session. Donc si tu récupère A1, A2 et A3 dans la même session, il n'y a qu'un seul B1.
    Merci.
    Pourquoi deux nouveaux enregistrements sont ils créés en base lors du 'save'? Je me serais attendu à ce que l'objet B1 soit mis à jours en BD à trois reprises. Au lieu de cela, il me semble qu'hibernate cré un enregistrement par ligne.
    A1-->B1
    A2-->B1
    A3-->B1
    L'objet initial B1 se retrouve donc persisté 3 fois?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Il faut que tu poste ton code parce que c'est un peu vague là

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 477
    Par défaut
    Citation Envoyé par the-gtm
    Il faut que tu poste ton code parce que c'est un peu vague là
    C'est ok, j'ai réussi à m'en sortir. il y avait un flou que tu as levé, le reste s'est débloqué tout seul.
    merci de ton aide

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

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