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 :

remove une collection


Sujet :

Hibernate Java

  1. #1
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut remove une collection
    bonjour tout le monde j'ai une entity pere ou il ya plusieurs fils.et je veux effectuer une supprission de tous les fils pour cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Pere pere = pereService.findPereById(getPereId());
    System.out.println("######################### avant supprission "+pere.getFils());
    pere.getFils().removeAll(pere.getFils());
    System.out.println("######################### apres supprission "+pere.getFils());
    pereService.createPere(pere);
    dans la console j'obtient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ######################### avant supprission [xx.model.Pere @1a99295, xx.model.Pere @25a5d2]
    ######################### apres supprission []
    tout ca se passe bien sauf que la suppression n'est pas fait dans la base de donnee?

  2. #2
    Rédacteur/Modérateur
    Avatar de regis1512
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mai 2008
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 264
    Par défaut
    Bonjour,

    Est ce que tu es dans une transaction ?

    http://defaut.developpez.com/tutorie...ernate/#L4.2.2

    Est-ce que ta donnée est liée à la base ?
    Pourquoi cet avatar ? Parce que j'aime bien le tableau "Le Fils de l'homme" de Magritte.
    Mes contributions sur developpez.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    As tu également mis la propriété cascade?

    Il faut savoir qu'hibernate n'execute les requetes qu'à la fin de la transaction, mais les objets eux sont supprimés au moment de la ligne de code.

    As tu un log d'erreur du type constraint violated?

  4. #4
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    Est ce que tu es dans une transaction ?
    oui je suis dans une transaction a cause de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pereService.findPereById(getPereId());
    As tu un log d'erreur du type constraint violated?
    pas de log erreur la consol est clean

    pour le type de casacd:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pere")
    ...

  5. #5
    Rédacteur/Modérateur
    Avatar de regis1512
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mai 2008
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 264
    Par défaut
    Je ne voudrais pas être offensant....
    D'accord, il y a le pereService.findPereById(getPereId());
    pour le début de transaction....
    Mais, je ne vois pas le commit pour la fin de transaction.
    Pourquoi cet avatar ? Parce que j'aime bien le tableau "Le Fils de l'homme" de Magritte.
    Mes contributions sur developpez.com

  6. #6
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    les transactions sont gérer par Spring ,soyer tranquille le commit il est appler
    en fait c'est pas ça le probleme car la méthode create fonctionne correctement?

  7. #7
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    bonjour j'ai trouver la solution suivant:
    http://www.sleberknight.com/blog/sle...entry/20070329
    qui dit que il faut supprimer les fils manuellement pour cela j'ai implémenter la méthode suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Set<Fils> list = pere.getFils();
    Iterator<Fils> iter = list.iterator();
    while (itera.hasNext()) {
    Fils  fils= (Fils  )itera.next();
    filsService.delete(fils );
    }
    j'obtien l'exception suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur java.util.ConcurrentModificationException
    un acces concurent interdit

  8. #8
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    jusqua maintenant je trouve pas de solution si quelqun a une methode pour supprimer les fils d'une pere merci de me donner une idee?

    je travail avec JPA spring

Discussions similaires

  1. [2.x] methode remove dans une collection
    Par chlock62 dans le forum Symfony
    Réponses: 14
    Dernier message: 04/12/2014, 15h02
  2. Vider une collection, alternative à Remove ?
    Par Jean-Philippe André dans le forum Général VBA
    Réponses: 2
    Dernier message: 14/01/2008, 09h54
  3. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49

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