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 :

Comment détacher un objet ?


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut Comment détacher un objet ?
    La question est dans le titre. Comment détacher un objet de la session ?

    Plus précisément, j'ai récupéré une grappe d'objets A et de sous-objet B. Or je voudrais pouvoir supprimer A sans supprimer B.

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Si tu n'as pas précisé de stratégie de cascade, supprimer tes A ne devraient pas supprimer tes B.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Je n'ai précisé aucune stratégie de cascade.

    Le problème que je rencontre est que dans certains cas, je dois supprimer A et B, et dans certains cas, seulement A.

    Or, lorsque je veux supprimer A et B, je supprimer d'abord B, et j'ai une Exception à la suppression de A.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    quel genre d'exception ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    PropertyValueException

    Et si je fais l'inverse, c'est-à-dire supprimer d'abord A puis B, j'ai une BatchedTooManyRowsAffectedException :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Batch update returned unexpected row count from update [0]; actual row count: 13; expected: 1

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Je pense que la dernière exception (BatchedTooManyRowsAffectedException) vient du fait que les sous-objets B peuvent être partagé par les instances de A. C'est-à-dire que plusieurs instances de A peuvent référencer le même sous-objet B (ou du moins des objets B ayant le même identifiant unique).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for (A action : list) {
        B suivi = action.getB();
        dao.detacher(suivi);
        dao.supprimer(action);
     
        if (suivi != null && aSupprimer.remove(suivi)) {
            dao.mettreAJour(suivi);
            dao.supprimer(suivi);
        }
    }
    La méthode detacher() appelle Session.evict().

Discussions similaires

  1. [VS.NET] Comment enregistrer un objet COM
    Par Dnx dans le forum Visual Studio
    Réponses: 5
    Dernier message: 24/03/2005, 22h38
  2. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 18h28
  3. [servlet][bean]comment récupérer l'objet request
    Par otminou dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/09/2004, 14h40
  4. Comment mettre plusieurs objets ds un composant ?
    Par Fleury dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/05/2003, 17h34

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