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.
Sie müssen die Employee--<>Skills
Assoziation zwischenspeichern. Beispiel aus Beschleunigen Sie Ihre Hibernate-Anwendungen mit Second-Level-Caching unten:
Beachten Sie das Element <cache>
innerhalb der Sprachen.
Tags und Links java hibernate orm lazy-loading second-level-cache