Heim >Datenbank >MySQL-Tutorial >Warum schlägt das verzögerte Laden von Blobs in meiner Spring-/Hibernate-Anwendung fehl?

Warum schlägt das verzögerte Laden von Blobs in meiner Spring-/Hibernate-Anwendung fehl?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 03:09:29984Durchsuche

Why is Lazy Blob Loading Failing in My Spring/Hibernate Application?

Lazy Blob Loading im Frühling, Ruhezustand

Im Kontext Ihrer Webanwendung stehen Sie vor einem Problem mit Lazy Blob Loading Überwintern. Um Ihr Problem zu klären: Bei den Datenbankeinträgen, die Sie auf der Webseite anzuzeigen versuchen, handelt es sich um große Dateien, die in MySQL gespeichert sind.

Ihre Datenbankkonfiguration umfasst MySQL, Tomcat, Spring und Hibernate. Sie haben in Ihrer Entitätsklasse ein Lazy-Blob-Feld mit den Annotationen @Lob, @Basic(fetch=FetchType.LAZY) und @Column definiert.

Aber obwohl Sie das Blob-Feld als Lazy markiert haben, sind Sie es Es tritt ein OutOfMemoryError auf, wenn das Datenvolumen groß ist. Sie haben auch versucht, im Blob-Feld für jede Zeile Nullwerte festzulegen, wodurch das Speicherproblem behoben wird und Sie glauben, dass das Lazy-Loading-Verhalten nicht wie beabsichtigt funktioniert.

Die Ursache der Verwirrung liegt in die widersprüchlichen Informationen, die online verfügbar sind. Während einige Quellen darauf hinweisen, dass @Lob-Felder von Natur aus verzögert sind, deuten andere darauf hin, dass verzögertes Laden möglicherweise nicht bei allen Treibern und Datenbanken konsistent funktioniert.

Mögliche Lösungen:

  • Verwenden Sie „falsche“ Eins-zu-Eins-Zuordnungen: Wie in der Dokumentation vorgeschlagen, können Sie separate Klassen für die LOB-Felder erstellen und diese mit fetch="select" und lazy eins-zu-eins zuordnen ="true" für Ihre Hauptentität. Dieser Ansatz stellt sicher, dass die LOB-Felder nur geladen werden, wenn sie explizit angefordert werden.
  • Versuchen Sie es mit der Bytecode-Instrumentierung: Einige Benutzer haben Erfolge mit Bytecode-Instrumentierungsbibliotheken wie Javaassist oder Cglib für das verzögerte Laden von Blobs gemeldet .
  • Dokumentation und Foren durchsehen: Durchsuchen Sie die Hibernate- und Spring-Dokumentation sowie die Online-Foren gründlich nach weiteren Erkenntnissen und möglichen Lösungen für Ihre spezifische Situation.

Das obige ist der detaillierte Inhalt vonWarum schlägt das verzögerte Laden von Blobs in meiner Spring-/Hibernate-Anwendung fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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