-->
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: Entitymanger Cache, Laden neuer Objekte[solved]
PostPosted: Thu Apr 01, 2010 1:42 pm 
Beginner
Beginner

Joined: Sat Mar 27, 2010 11:03 am
Posts: 27
Location: Berlin
Hallo,

wie kann ich es realisieren, dass eine Query den Cache umgeht und Objekte explizit aus der DB lädt
bzw. der Cache des Entitymangers aktualisiert wird ? Einzelne Objekte kann ja mit der refresh-Methode
aktualisieren.

Bei einer Java SE Anwendung welche von mehreren Benutzern gleichzeitig genutzt wird, um Daten zu verwalten
können ja häufig Datensätze / Objekte aus der DB entfernt werden oder hinzukommen.
Solange aber bei den einzelnen Usern immer der Cache befragt wird bekommen sie ja nicht mit
ob neue Objekte hinzugekommen sind. Es kann ja nicht im Sinne des Erfinders sein jedesmal den
Entitymanger komplett zu leeren um zu forcieren, dass er die Abfrage erneut an die DB statt den
Cache richtet ?!?

Für Anregungen wäre ich dankbar.
Moe


Last edited by moe5k on Tue Apr 06, 2010 8:00 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Entitymanger Cache, Laden neuer Objekte
PostPosted: Fri Apr 02, 2010 2:21 am 
Expert
Expert

Joined: Tue Jun 16, 2009 3:36 am
Posts: 990
Quote:
Solange aber bei den einzelnen Usern immer der Cache befragt wird bekommen sie ja nicht mit
ob neue Objekte hinzugekommen sind.


Das mit den neuen Objecten stimmt nicht ganz so, wie es Du beschrieben hast, denn:
1. Wenn ein anderer User neue Objekte einfuegt und commited hat, dann berueckstichtigt Deine Query die neuen Datenssaetze auf jedem Fall (ausser Du arbeitest mit ISOLATION LEVEL SERIALIZABLE, was eher selten werwendet wird)
2. Wenn ein anderer User neue Objekte einfuegt und geflusht hat, und Du mit ISOLATION READ UNCOMMITTED (dirty reads) arbeitest, dann berueckstichtigt Deine Query die neuen Datenssaetze ebenfalls schon.

N.B.: Damit Deine Query die neuen Objekte berueckstichtigt, die Du selbst gerade in der Transaction eingefuegt hast,
musst Du dafuer sorgen dass zuerst geflush wird
(entweder implicit ueber createQuery("").setFlushMode(FlushMode.ALWAYS) oder explicit aufrufen)


Top
 Profile  
 
 Post subject: Re: Entitymanger Cache, Laden neuer Objekte[solved]
PostPosted: Fri Apr 02, 2010 3:06 am 
Beginner
Beginner

Joined: Sat Mar 27, 2010 11:03 am
Posts: 27
Location: Berlin
Vielen Dank für die Erläuterung. Klappt nun.

Gruß Moe


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.