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 :

Probleme de suppression sur une asso reflexive <many-to-many>


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 14
    Points
    14
    Par défaut Probleme de suppression sur une asso reflexive <many-to-many>
    Bonjour tout le monde,
    Voila j'ai une classe "Acteur" qui a un deux collections (membres et structures) issues d'une asso reflexive 'many-to-many'.
    Pour plus de clareté, voici le mapping de cette classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <meta attribute="sync-DAO">false</meta>
     
    		<id name="id" type="integer" column="id"><generator class="native"/></id>
    		<property name="nom" column="nom" type="string" not-null="false" length="30" />
    		<property name="adrs" column="adrs" type="string" not-null="false" />
    		<property name="cp" column="cp" type="string" not-null="false" length="6" />
    		<property name="ville" column="ville" type="string" not-null="false" length="100" />
    		<property name="pays" column="pays" type="string" not-null="false" length="100" />
    		<property name="tel1" column="tel1" type="string" not-null="false" length="10" />
    		<property name="tel2" column="tel2" type="string" not-null="false" length="10" />
    		<property name="email" column="email" type="string" not-null="false" length="100" />
     
    		<set name="structures" table="participe">
    			<key column="id_membre" />
    			<many-to-many column="id_structure" class="Acteur" />
    		</set>
    		<set name="membres" table="participe" inverse="true">
    			<key column="id_structure" />
    			<many-to-many column="id_membre" class="Acteur" />
    		</set>
    		<set name="contextes">
                <key column="id_acteur"/>
                <one-to-many class="Contexte"/>
            </set>

    J'arrive à ajouter des membres à une structure, récupérer les membres d'une structure, etc... et inversement.

    Mon problème apparaît lorsque je cherche à enlever un membre d'une structures!?

    J'ai essayé différentes choses :

    public static void delMembreToStruct(int idStructure, int idMembre) {

    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		 Session session = HibernateUtil.currentSession(); 
    	     Transaction trx = session.beginTransaction(); 
     
    	    /* Acteur unMembre = (Acteur) session
    	     .createQuery("select a from Acteur a left join fetch a.structures where a.id = :idMembre")
    	     .setParameter("idMembre", idMembre)
    	     .uniqueResult(); */
    	     Acteur unMembre = (Acteur) session.load(Acteur.class, idMembre);
    	     Acteur uneStructure = (Acteur) session.load(Acteur.class, idStructure);
    	     uneStructure.getMembres().clear();
    	     session.update(uneStructure);
    	     trx.commit(); 
    	 	 }
    ainsi que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public static void delMembreToStruct(int idStructure, int idMembre) {
     
    		 Session session = HibernateUtil.currentSession(); 
    	     Transaction trx = session.beginTransaction(); 
     
    	    /* Acteur unMembre = (Acteur) session
    	     .createQuery("select a from Acteur a left join fetch a.structures where a.id = :idMembre")
    	     .setParameter("idMembre", idMembre)
    	     .uniqueResult(); */
    	     Acteur unMembre = (Acteur) session.load(Acteur.class, idMembre);
    	     Acteur uneStructure = (Acteur) session.load(Acteur.class, idStructure);
    	     uneStructure.getMembres().remove(unMembre);
    	     session.saveOrUpdate(unMembre);
    	     trx.commit(); 
     
    	 }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     public static void delMembreToStruct(int idStructure, int idMembre) {
     
    		 Session session = HibernateUtil.currentSession(); 
    	     Transaction trx = session.beginTransaction(); 
     
    	    /* Acteur unMembre = (Acteur) session
    	     .createQuery("select a from Acteur a left join fetch a.structures where a.id = :idMembre")
    	     .setParameter("idMembre", idMembre)
    	     .uniqueResult(); */
    	     Acteur unMembre = (Acteur) session.load(Acteur.class, idMembre);
    	     Acteur uneStructure = (Acteur) session.load(Acteur.class, idStructure);
     
    	     trx.commit(); 
     
    	     uneStructure.getMembres().remove(unMembre);
     
    	     Session session2 = HibernateUtil.currentSession(); 
    	     Transaction trx2 = session.beginTransaction();
     
    	     session2.update(unMembre);
     
    	     trx2.commit(); 
    	 }
    Je ne comprends pas ce que je loupe!?
    Merci d'avance!

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Essaie avec un session.delete

Discussions similaires

  1. Probleme de suppression sur une base de donnees en java
    Par gnaly dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 16/01/2014, 17h45
  2. [CONCEPTION] probleme sur une relation reflexive
    Par bambi98 dans le forum Modélisation
    Réponses: 5
    Dernier message: 27/04/2007, 11h34
  3. probleme de texture sur une sphère
    Par sebpp dans le forum OpenGL
    Réponses: 2
    Dernier message: 12/04/2005, 19h46
  4. Mount / fstab - Problème de droit sur une partition
    Par Chance666 dans le forum Administration système
    Réponses: 5
    Dernier message: 17/01/2005, 15h57
  5. Probleme de pointeur sur une fonction
    Par nicky78 dans le forum C
    Réponses: 2
    Dernier message: 23/05/2004, 20h26

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