-->
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.  [ 2 posts ] 
Author Message
 Post subject: Verständnisfrage: Session Lifetime und Update von Objekte
PostPosted: Mon Oct 15, 2007 4:01 am 
Newbie

Joined: Fri Aug 17, 2007 7:43 am
Posts: 8
Hallo,

ich arbeite nun schon seit ca. zwei Monaten mit Hibernate, aber habe noch eine generelle Verständnisfrage die ich gerne geklärt hätte.

Um einen Tupel in ein Objekt zu laden öffne ich eine Session die ich auch direkt nach dem Laden wieder schließe. Die Bearbeitung des Objekts im Programm erfolgt also ohne aktive Session.

Möchte ich nun das Objekt wieder in die Datenbank schreiben wird die Session erneut geöffnet und ein SaveOrUpdate bzw. nun der Merge ausgeführt. Danach gleich wieder ein session.close().


Die Frage die sich hier mit stellt ist folgende: Ist dadruch sichergestellt das Hibernate nicht sofort beim Ändern einer Eigenschaft des Objekts die Daten wieder in die Datenbank schreibt?

Normalerweise ja, denn die Session ist ja dicht, aber ich bin mir unsicher, da wenn ich via der XML Konfiguration die SQL Anweisungen auf der Console ausgebe kommen des öfteren mir unerklärliche UPDATE Anweisungen vor.

Ich möchte aber absolut sicher gehen das nur ich mit meinem Code entscheide wann und was in die Datenbank geschrieben wird!


Wie verhält sich Hibernate nun genau? Gib es einen schalter wo ich ein eventuelles "Auto-Update" auschschalten kann?


Mein Buch "A Developers Notebook" konnte mir auch nicht wirklich helfen und im Inet habe ich auch keine besseren Informationen gefunden :(


Danke schonmal für jede Antwort :)


Gruß,
Michael


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 15, 2007 4:06 am 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Es gibt drei (vier) wichtige Stati von Hibernate Objekten. Persistent, Detached und Transient (evt. removed noch dazu). Die sollten in jedem Hibernate Buch ausführlich beschrieben sein.

Wenn die Session geschlossen worden ist, sind die Objekte der Session detached. Änderungen werden nicht sofort in die Datenbank geschrieben. Das geht dann nur mit merge/update/saveOrUpdate.
Diese Methoden ändern den Status des Objektes dann in persistent (Ausnahme merge). Bei einem Objekt mit Status persistent, werden alle Änderungen beim nächsten Commit in die DB geschrieben.

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 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.