-->
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.  [ 8 posts ] 
Author Message
 Post subject: ID des gerade eingefügten Objektes?
PostPosted: Wed Apr 26, 2006 5:32 am 
Newbie

Joined: Tue Apr 18, 2006 12:33 pm
Posts: 12
Hallo zusammen,

irgendwann habe ich auf irgendeiner Seite was zu der Frage gelesen, wie man z.B. die Datenbank-ID des gerade eingefügten Objektes zur Weiterverarbeitung bekommt.

Leider habe ich das jetzt aber nicht mehr gefunden, gibt es da eine Möglichkeit und wenn ja, wie sieht die aus?

Danke und viele Grüße,
Andreas


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 26, 2006 6:11 am 
Expert
Expert

Joined: Tue Dec 07, 2004 6:57 am
Posts: 285
Location: Nürnberg, Germany
In der Regel geht das mit session.flush()

_________________
Please don't forget to rate


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 26, 2006 6:16 am 
Newbie

Joined: Tue Apr 18, 2006 12:33 pm
Posts: 12
MikePloed wrote:
In der Regel geht das mit session.flush()


Danke für deine Antwort!

Aber aus der API:
Force the Session to flush. Must be called at the end of a unit of work, before commiting the transaction and closing the session (Transaction.commit() calls this method). Flushing is the process of synchronising the underlying persistent store with persistable state held in memory.

Ich verstehe nicht ganz, wie mir das helfen soll?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 26, 2006 6:25 am 
Expert
Expert

Joined: Tue Dec 07, 2004 6:57 am
Posts: 285
Location: Nürnberg, Germany
Durch die Synchronisierung werden Deine Objekte mit den IDs versehen. Das Commit schreibt sie dann in die DB. Ein Commit löst auf jeden Fall nen Flush aus (muss er ja).

_________________
Please don't forget to rate


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 26, 2006 6:33 am 
Newbie

Joined: Tue Apr 18, 2006 12:33 pm
Posts: 12
MikePloed wrote:
Durch die Synchronisierung werden Deine Objekte mit den IDs versehen. Das Commit schreibt sie dann in die DB. Ein Commit löst auf jeden Fall nen Flush aus (muss er ja).


Ah, verstehe - das muss man natürlich wissen ;-)
Und gleich auch besten Dank - hat prächtig funktioniert!


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 13, 2006 9:59 am 
Newbie

Joined: Tue May 09, 2006 10:33 am
Posts: 4
Hallo,
klappt das denn auch mit MySQL, M. liefert m.E. nämlich keine Auto-inc IDs zurück?
Grüsse
Werner


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 13, 2006 12:10 pm 
Newbie

Joined: Tue Apr 18, 2006 12:33 pm
Posts: 12
werner wrote:
Hallo,
klappt das denn auch mit MySQL, M. liefert m.E. nämlich keine Auto-inc IDs zurück?
Grüsse
Werner

Ja, klappt. Ich benutze MySQL ;-)


Top
 Profile  
 
 Post subject: Ids durch Session.flush() - gibt es keine bessere Lösung?
PostPosted: Mon May 22, 2006 4:50 am 
Newbie

Joined: Tue Apr 26, 2005 9:15 am
Posts: 2
Fall ein Objekt noch nie gespeichert wurde, reicht ein SaveOrUpdate zur Initialisierung der Id, mit einem cascade="all" werden dann auch die Ids der verlinkten Objekte sofort mit initialisiert.

Im Update-Fall, wenn das Parent-Objekt bereits persistent ist und nur ein neues Child-Objekt in eine seiner Collections hinzugefügt wurde, werden die Ids der neuen Child-Objekte erst beim Session.flush initialisiert.

Ein Session.flush bei jedem Update durchzuführen ist aber ziemlich teuer da alle persistierten Objekte auf Änderungen geprüft und dann gespeichert und neu gelesen werden.

Hier meine Frage: Gibt es für den Update-Fall nicht auch eine Möglichkeit dediziert nur ein Parent-Childs-Objektgeflecht so wie bei Insert zu flushen?

Vielen Dank und Gruß
Wilko


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