-->
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: Frage zur Funktion von Session.clear()
PostPosted: Sun Jan 27, 2008 2:47 pm 
Beginner
Beginner

Joined: Thu Nov 13, 2003 4:12 am
Posts: 27
Hi,

ich benutze HB und habe ein Problem mit Inkonsistenzen zwischen dem first-level cache der HB session und dem Stand auf der Datenbank.
Ich habe daher versucht den dirst-level Cache an der Problemstelle zu leeren mit

session.clear()

Leider bekomme ich daraufhin eine LazyInitializationException, was mir sagt, dass die HB session durch clear() gelöscht wird bzw. danach nichtmehr nutzbar ist.

Frage: stimmt das? In der Dokue steht dazu nichts.

Thx


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 29, 2008 11:56 am 
Regular
Regular

Joined: Fri May 12, 2006 4:05 am
Posts: 106
Hi,

die Session wird durch clear() nicht gelöscht, sondern nur geleert. Die Session an sich kannst Du also durchaus weiter nutzen, nur gehen alle persistenten Objekte, die noch in deiner Anwendung rumschwirren in den Zustand "detached" (sprich: nicht in der Session enthalten - istz dann ja irgendwie auch logisch).
Das Problem dabei ist, dass Objekte, die nicht an einer Session hängen, von sich aus auch keine hibernate-Funktionalität, d.h. in Deinem Fall speziell das lazy-loading der angehängten Objekte, mehr nutzen können.

Was genau ist eigentlich das Problem?
Sind die Zustände in der Datenbank neuer als die im Hibernate-Cache? Dann laufen da irgend welche konkurrierenden Updates, und das ist immer schweirig in den Griff zu bekommen.
Oder willst Du zwischendurch mal die aktuellen Hibernate-Objekte auf die Datenbank schreiben? Dann einfach mal Session.flush() aufrufen...

Gruß

piet


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 30, 2008 5:33 pm 
Beginner
Beginner

Joined: Thu Nov 13, 2003 4:12 am
Posts: 27
Hi Piet,

folgende Problematik: Meine Anwendung funkt problemlos
bis ich ein sessionclear() ausführe. Die Entitäten, die ich
bis dahin in der Hand habe werfen dann eine
LazyInitializationException, wenn man von Ihnen z.B.
ein Attribut lesen will.
Aber ich glaube ich versteh's mittlerweile:
Nicht die session wird getötet, sondern die in der
Session hängenden Entities bzw. deren Proxies
werden irgendwie invalidiert. Ich hätte eben gedacht,
die Daten werden dann einfach von der DB nachgeladen,
wenn Sie im first-level cache durch clear() rausgeflogen sind.


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.