Spring Hibernate Blob Lazy Loading
Lazy Loading im Ruhezustand ermöglicht das verzögerte Abrufen von Daten, wodurch der Speicherverbrauch reduziert und die Leistung verbessert wird. Bei einigen Benutzern sind jedoch Probleme mit dem verzögerten Laden von LOBs (Large Object Binary) in Hibernate aufgetreten.
In einer typischen Hibernate-Konfiguration mit MySQL, TOMCAT, Spring und Hibernate sollten mit @Lob annotierte Entitäten über verzögertes Abrufen verfügen standardmäßig. Einige Benutzer berichten jedoch, dass dieses Verhalten bei verschiedenen Treibern und Datenbanken inkonsistent ist.
Ein potenzielles Problem hängt mit der Bytecode-Instrumentierung zusammen. Die Verwendung von Frameworks wie Javaassist oder cglib für die Bytecode-Manipulation kann sich darauf auswirken, wie Hibernate Annotationen zum verzögerten Laden interpretiert.
In Fällen, in denen das verzögerte Laden von LOBs fehlschlägt, besteht die empfohlene Problemumgehung darin, Eins-zu-Eins-Zuordnungen als Platzhalter für zu verwenden LOB-Felder. Dabei werden separate Klassen erstellt, die auf dieselbe Tabelle und denselben Primärschlüssel verweisen, aber nur die erforderlichen LOB-Felder als Eigenschaften enthalten. Die Zuordnungen sollten als fetch="select" und lazy="true" konfiguriert sein. Dadurch wird sichergestellt, dass die LOB-Daten nur dann abgerufen werden, wenn dies ausdrücklich angefordert wird.
Durch die Implementierung dieser Lösung können Sie das verzögerte Laden von LOBs effektiv aktivieren und gleichzeitig potenzielle Kompatibilitätsprobleme oder Einschränkungen im verzögerten Lademechanismus von Hibernate beheben.
Das obige ist der detaillierte Inhalt vonWie erreicht man ein verzögertes Laden von LOBs im Ruhezustand mit Spring?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!