Wie verwende ich Second-Level-Cache für faul geladene Sammlungen in Hibernate?

8

Nehmen wir an, ich habe zwei Entitäten, Employee und Skill . Jeder Mitarbeiter hat eine Reihe von Fähigkeiten. Wenn ich nun die Fähigkeiten langsam durch die Employee Instanzen lade, wird der Cache nicht für Fähigkeiten in verschiedenen Instanzen von Employee verwendet.

Betrachten wir den folgenden Datensatz.

%Vor%

Wenn ich Employee - 2 nach Employee - 1 lade, möchte ich nicht, dass der Hibernate die Datenbank trifft, um die Fähigkeiten zu erhalten, und stattdessen die Skill Instanzen verwenden, die bereits im Cache verfügbar sind. Ist das möglich? Wenn ja wie?

Ruhezustandskonfiguration

%Vor%

Die Entitäten mit Importen, Getter und Setter wurden entfernt

%Vor%

SQL zum Laden des zweiten Angestellten und seiner Fähigkeiten

%Vor%

Dabei möchte ich insbesondere die zweite Abfrage vermeiden, da die erste sowieso unvermeidlich ist.

    
Chandra Sekar S 18.02.2010, 10:57
quelle

1 Antwort

4

Sie müssen die Employee--<>Skills Assoziation zwischenspeichern. Beispiel aus Beschleunigen Sie Ihre Hibernate-Anwendungen mit Second-Level-Caching unten:

%Vor%

Beachten Sie das Element <cache> innerhalb der Sprachen.

    
Pascal Thivent 18.02.2010 11:32
quelle