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 :

Suppression d'un bean avec un Set en parametre


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Par défaut Suppression d'un bean avec un Set en parametre
    Bonjour a tous,

    Tous d'abord merci pour vos reponses et eclaircissement.
    Jai deux tables champ et operateur dans la relation n-n a donné naissance a une table champ_operateur.

    j'ai besoin de supprimer une liste de champ et voila mon champ
    public class Champ implements java.io.Serializable {
    private int champId;
    private Set operateurs = new HashSet(0);
    }
    avec les getters et setters biensur
    et voici la classe operateur:
    public class Operateur implements Serializable {
    private int operateurId;
    private String libelle;
    }
    Alors pour supprimer une liste de champs, il faut supprimer tous les elements de la tables champ_operateur qu'ils utilisent les ids de la table champ en question.

    voici ce que jé fais cmme solution
    public class ChampDAO extends HibernateDaoSupport implements IChampDAO {
    public void updateChamps(List<Champ> list) throws DAOException {
    for (Champ champ : list) {
    Set < ChampOperateur > listOp = champ.getOperateurs();
    getHibernateTemplate().deleteAll(listOp);
    getHibernateTemplate().delete(champ);
    }}
    }
    et voici l erreur qu'on me donne:
    org.springframework.orm.hibernate3.HibernateSystemException: Illegal attempt to associate a collection with two open sessions; nested exception is org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Par défaut
    voici une proposition qui me semble plus logique et qui monte en cascade mais qui me prodouit toujours la meme erreurs

    for (Champ champ : list) {
    query = getSession().createQuery("from ChampOperateur where champ_id = ?");
    query.setInteger(0, champ.getChampId());
    List < ChampOperateur > listCh = query.list();
    getHibernateTemplate().deleteAll(listCh);
    logg.log(Level.INFO, "liste des operateurs size "
    + listCh.size() + " pour le champ " + champ.getChampId());
    getHibernateTemplate().delete(champ);
    }
    Encore a vous

Discussions similaires

  1. [Batch] probleme avec commande SET et la suppression d'une chaine
    Par jcderchain dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 11/08/2011, 02h17
  2. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23
  3. [debutant][Gregoriancalendar] Problème avec le set
    Par britou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/06/2004, 16h01
  4. Recherche "étoilée" avec std::set
    Par guejo dans le forum MFC
    Réponses: 2
    Dernier message: 06/05/2004, 13h28
  5. Réponses: 8
    Dernier message: 14/11/2003, 22h51

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