Heim > Datenbank > MySQL-Tutorial > Hauptteil

Warum schlägt Lazy Loading für @Lob-Felder im Frühling und Ruhezustand fehl?

Susan Sarandon
Freigeben: 2024-11-02 18:28:02
Original
356 Leute haben es durchsucht

Why Does Lazy Loading Fail for @Lob Fields in Spring and Hibernate?

Lazy Loading-Probleme mit @Lob in Spring und Hibernate

In Webanwendungen, die Spring und Hibernate verwenden, sind Datenbankeinträge mit dateibezogenen Daten vorhanden auf einer Webseite gerendert. Während der Prozess bei geringen Datenmengen reibungslos funktioniert, lösen übermäßige Datenmengen einen „OutOfMemoryError“ aus.

Als erster Fehlerbehebungsschritt wurde das Speicherproblem durch Festlegen der „blobField“-Eigenschaften auf „null“ behoben, was darauf hindeutet, dass Lazy Das Laden war trotz der Annotation @Basic(fetch=FetchType.LAZY) ineffektiv.

Erklärungen und Problemumgehungen

Laut Hibernate-Dokumentation sind @Lob-Felder von Natur aus faul und tun dies auch erfordern keine expliziten Lazy-Annotationen. Es wurde jedoch in allen Datenbanken und Treibern inkonsistentes Verhalten gemeldet.

Eine Lösung umfasst Bytecode-Instrumentierungstechniken wie Javassist oder Cglib.

Empfohlene Lösung

Zu Um dieses Problem zuverlässig beheben zu können, wird empfohlen, die Datenzuordnungen neu zu strukturieren. Anstatt Eigenschaften zu verwenden, erstellen Sie „falsche“ Eins-zu-eins-Zuordnungen. Entfernen Sie LOB-Felder aus der Primärklasse, erstellen Sie neue Klassen, die auf dieselbe Tabelle und denselben Primärschlüssel verweisen, aber nur die erforderlichen LOB-Felder enthalten. Markieren Sie diese Zuordnungen als Eins-zu-Eins, Fetch Select und Lazy True. Dieser Ansatz gewährleistet ein verzögertes Laden, während das übergeordnete Objekt in der Sitzung verbleibt.

Das obige ist der detaillierte Inhalt vonWarum schlägt Lazy Loading für @Lob-Felder im Frühling und Ruhezustand fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!