SaveOrUpdate : modification non prises en comptes
Bonjour,
Aprés un petit test,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Session session = HibernateUtil.openSession("loginAction");
Transaction tr = HibernateUtil.beginTransaction(session, "loginAction");
tr.begin();
//Recup les données
//PrevBeneficiaire ben =
PrevFicheInval fiche = (PrevFicheInval) session.get(PrevFicheInval.class, new Integer(35));
//recupère en session les données saisie a la premiere partie
//Arret
PrevFicheInvalArret prevFicheInvalArret = new PrevFicheInvalArret();
prevFicheInvalArret.setArretDateDebut(TraiterDate.stringToDate("01/03/2007"));
prevFicheInvalArret.setArretDateFin(TraiterDate.stringToDate("01/04/2007"));
prevFicheInvalArret.setArretObjet("TEST");
prevFicheInvalArret.setArretEtat("EC");
// PrevFicheInval fiche2 = (PrevFicheInval) session.get(PrevFicheInval.class, fiche.getInvalFicheId());
// fiche2.getInvalArrets().add(prevFicheInvalArret);
fiche.setInvalRegimeAmeliore(false);
fiche.getInvalArrets().add(prevFicheInvalArret);
// On sauvegarde
session.saveOrUpdate(fiche);
tr.commit();
session.close(); |
il se trouve que le nouvel objet que je rajoute à ma collection (prevFicheInvalArret) n'ai pas sauvegarder en BD alors que la modification sur l'objet fiche (passage du boolean a false) elle l'ai.
Je ne comprend pas pourtant dans le fichier hbm j'ai :
Code:
1 2 3 4 5 6 7 8
|
<set name="invalArrets" table="prev_fiche_inval_arret" inverse="false" cascade="all" lazy="true" sort="mgpat.workflow.prevoyance.fichessuivi.ArretFicheComparator">
<key>
<column name="arret_fiche_id" />
</key>
<one-to-many class="PrevFicheInvalArret" />
</set> |
Donc toute modification devrait etre répercutée.
PS: Je viens de rajouter un test aprés l'ajout de l'objet à al collection et la taille de mon set est toujours le même ! (resté à un) On dirait que le add na pas fonctionné)