Bonjour,
j'aimerais savoir s'il est possible de charger des objet en lecteure seule.
L'exemple si-dessous sera plus parlant :
// Demande de session, pas de flush automatique
Session session = hibernateUtils.getSession();
session.setFlushMode(FlushMode.NEVER);
// Je charge deux objets qui n'on aucun lien
MaClassA maClassA = (MaClassA) session.load(MaClassA.class, new Integer(1));
MaClassB maClassb = (MaClassB) session.load(MaClassB.class, new Integer(1));
// Affichage
System.out.println(maClassA.getLibelle());
System.out.println(maClassb.getAge());
// Je modifie des proprietes sur les deux objets
maClassA.setLibelle(Integer.toString(maClassb.getAge()));
maClassb.setAge(maClassb.getAge() + 1);
// Je demarre une transaction, et je ne sauve que l'objet A
session.beginTransaction();
session.save(maClassA);
session.flush();
session.getTransaction().commit();
Dans ce cas, l'objet B est aussi sauvegardé. Comment faire pour que cela
n'arrive pas (je ne voudrai pas passer par la methode evict)
N'existe-t-il pas un mode ou on pourrait dire à hibernate de ne sauver
que les objets qui sont passé par la methode save/saveOrUpdate/...
Peut-etre faut-il jouer avec les Lockmode ??
Dans hibernate 3, il existe une methode setReadOnly, mais j'obtiens
une exception lorsque j'essaye de l'appliquer a mon objet B
Merci de votre aide
|