-->
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.  [ 3 posts ] 
Author Message
 Post subject: Charger objet en lecture seule
PostPosted: Wed Feb 08, 2006 7:25 am 
Newbie

Joined: Tue Feb 07, 2006 2:00 pm
Posts: 5
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


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 10, 2006 8:21 am 
Expert
Expert

Joined: Tue Dec 28, 2004 7:02 am
Posts: 573
Location: Toulouse, France
Et pourquoi tu veux éviter evict ?!

Je pense que ton problème est ptête lié au mode dirty d'Hibernate, associé à un autocommit à true. Peut-être que dès que tu flushes la session, il vérifie les objets de la session et sauve ceux qui sont "sales" (i.e. pas en accord avec la base) ?

Je chercherais par là et les options d'H3 en tout cas, personnellement :).

@++


Top
 Profile  
 
 Post subject: Re:
PostPosted: Wed Feb 15, 2006 8:58 am 
Newbie

Joined: Tue Feb 14, 2006 12:29 pm
Posts: 5
T'es sur que l'objet A n'a pas l'objet B présent dans son mapping, genre dans une liste, et que ya pas une propriété cascade="save-update" sur cette liste ?


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

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.