-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Supprimer les elements d'une Collection :Père/Fils
PostPosted: Thu Oct 04, 2012 8:42 am 
Newbie

Joined: Thu Oct 04, 2012 8:10 am
Posts: 4
Bonjour;
j'ai deux classes Partenaire et ProjetPartenaire ,chaque partenairepeut avoir plusieurs ProjetPartenaire .j'ai mappé les classes avec une association <one-to-many> du Père vers le Fils.
l'ajout et la mis à jours d'un ProjetPartenaire dans la collection projetPartenaires de classe Partenaire se deroule sans probléme,mais si je supprime un ProjetPartenaire de la collection puis je fait une sauvgarde de Partenaire cela ne supprime pas ProjetPartenaire de la base de données mais il met la clé etrangére partenaire.codePartenaire du table PROJET_PARTENAIRE a null.
voici le code;
Code:
public class Partenaire implements Serializable {
    private String codePartenaire;
    private Collection<ProjetPartenaire> projetPartenaires ;
    // getter and setter
}


Code:
public class ProjetPartenaire implements Serializable {
      private Integer codeProjetPartenaire;
      private Partenaire partenaire;
    // getter and setter
}


Code:
mapping coté ProjetPartenaire
   <many-to-one column="CODE_PARTENAIRE" name="partenaire" />


Code:
mapping coté Partenaire
      <set name="projetPartenaire"  cascade="all-delete-orphan" inverse="false" >
         <key column="CODE_PARTENAIRE" />
         <one-to-many class="ClassesJava.ProjetPartenaire" />
      </set>


et coté JSF j'ai une List<ProjetPartenaire> listProjets dans un <rich:dataTable> pour ajouter et supprimer des lignes dans cette Liste ;
et enfin pour sauvgarder le Partenaire je lui affecter cette liste :
Code:
     HashSet<ProjetPartenaire> listprojetspartenaire = new HashSet<ProjetPartenaire>(listProjets); // listProjets : celle  utilisé dans  JSF
     partenaire.setProjetPartenaire(_listprojets);
    // puis avec mon DAO  partenaireService
     partenaireService.save(this.partenaire);
     // et pour supprimer
      partenaireService.delete(this.partenaire);


c'est la collection qui s'occupe des liens entres Partenaire et ProjetPartenaire.j'ai pas mis ni delete ni save explicite.
si j'ai un partenaire avec 2 projet ,je veus essayé de supprimé l'un des projet (supprimé une ligne de la Liste) puis sauvgarder voici ce que hibernate fait :
Code:
Hibernate: update COM_PARTENAIRE set GLOBAL_LOCATION_NUMBER=?, CODE_PARTENAIRE_PAIRE=?,............ where CODE_PARTENAIRE=?
Hibernate: update COM_PROJET_PARTENAIRE set DESCRIPTION_PROJET_PARTENAIRE=?, CODE_PARTENAIRE=? ........where CODE_PROJET_PARTENAIRE=?
Hibernate: update COM_PROJET_PARTENAIRE set CODE_PARTENAIRE=null where CODE_PARTENAIRE=?
Hibernate: update COM_PROJET_PARTENAIRE set CODE_PARTENAIRE=? where CODE_PROJET_PARTENAIRE=?


merci d'avance pour toute idée.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.