-->
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: [ pb avec la MAJ d'une table de liaison ]
PostPosted: Mon Oct 24, 2005 11:35 am 
Newbie

Joined: Thu Sep 08, 2005 5:29 am
Posts: 10
Bonjour, je travaille avec Hibernate 2.1
Dans mon pb, j'ai une reunion (classe BDPR) qui possede un Set de decisions (BDDecisionPR), une classe d'association qui correspond à une liaison entre une réunion et une decision (BDDecision).

Lorsque je veux mettre à jour la liste des decisions d'une BDPR, je suis obligé dans un premier temps d'effacer tous les elements du Set de flusher, puis de creer autant de nouvelles liaisons que nécessaires :
Code:
SessionFactory sf = OutilHibernate.getSessionFactory();
         session = sf.openSession();
         Transaction tx = session.beginTransaction();
         
                  /*d'abord, il faut effacer toutes les liaisons existantes entre le PR et les decisions*/
         Query query = session
               .createQuery("from com.centiris.elise.bd.project.BDDecisionPR as dec where dec.pr.id = :idPR");
         query.setLong("idPR", idPR);

         for (Iterator iter = query.list().iterator(); iter.hasNext();)
         {
            BDDecisionPR dec = (BDDecisionPR) iter.next();
            session.delete(dec);
         }

         session.flush();

         /*maintenant, on rajoute les liaisions*/
         for (Iterator iter = decisions.iterator(); iter.hasNext();)
         {
            Decision decision = (Decision) iter.next();
            BDDecision decision2 = OutilDecision.getDecisionById(decision
                  .getId().longValue(), session);
            BDPR bdpr = OutilPR.prById(idPR, session);
            BDDecisionPR decisionPR = new BDDecisionPR();
            decisionPR.setArchiver(false);
            decisionPR.setPr(bdpr);
            decisionPR.setDecision(decision2);
            decisionPR.setOrdre((short) 0);
            session.save(decisionPR);
         }

         tx.commit();


Existe-t-il une solution plus élégante - et surtout plus efficace - ? merci


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.