Hibernate 2nd Level Cache

8

Hi Ich habe Probleme mit dem 2nd Level Cache im Ruhezustand. Als Cache-Provider verwende ich ehcache.

Teil der Konfiguration aus persistence.xml

%Vor%

Ich konfiguriere meine Entitäten mithilfe von Annotationen so:

%Vor%

Importe für diese Anmerkungen sind: import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy;

meine ehcache.xml

%Vor%

Und jemand Idee, warum ich folgenden Fehler bekomme?

%Vor%

Lösung ist eine weitere Eigenschaft zu persistence.xml hinzuzufügen

%Vor%

und das entfernt das fehlerhafte Präfix big thx ruslan!

    
Dogrizz 19.04.2009, 10:30
quelle

3 Antworten

8

IMHO, Sie erhalten den Namen der generierten Region für Ihre Klasse. Dieser generierte Name "persistence.unit: unitName = pz2EAR.ear / pz2EJB.jar # pz2EJB.pl.bdsdev.seps.encje.Kierunek". Und es ist nicht in Ihrer ehcache.xml-Konfiguration definiert. Außerdem sucht es nach dem vordefinierten Namen, sodass die Standardregion nicht verwendet werden kann.

Um dieses Problem zu lösen, können Sie @Cache-Annotationseigenschaften verwenden, um einen Regionsnamen wie

vorzudefinieren %Vor%

Und in ehcache.xml

%Vor%     
ruslan 19.04.2009, 15:24
quelle
5

Hibernate fügt den Cache-Namen ein Präfix basierend auf dem Anwendungsnamen oder dem Wert der Eigenschaft hibernate.cache.region_prefix

hinzu

Wenn Sie diese Eigenschaft für "" (leere Zeichenfolge) festlegen, haben Sie in hibernate config Regionen, die genau wie name benannt sind.

    
vorp 03.11.2011 17:10
quelle
0

EHCache benötigt eine Konfiguration, die angibt, wie die Objekte in Ihrer Anwendung zwischengespeichert werden (Live-Zeit, Cache-Typ, Cache-Größe, Cache-Verhalten usw.). Für jede Klasse, die Sie versuchen, zwischenzuspeichern, wird versucht, eine geeignete Cache-Konfiguration zu finden und den obigen Fehler zu drucken, wenn dies nicht der Fall ist.

Siehe Ссылка für die Konfiguration von EHCache.

    
fforw 19.04.2009 11:27
quelle