ホームページ  >  記事  >  データベース  >  Spring/Hibernate アプリケーションで遅延 BLOB 読み込みが失敗するのはなぜですか?

Spring/Hibernate アプリケーションで遅延 BLOB 読み込みが失敗するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 03:09:29884ブラウズ

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

Spring、Hibernate での遅延 BLOB 読み込み

Web アプリケーションのコンテキストでは、遅延 BLOB 読み込みの問題に直面しています。冬眠します。問題を明確にするために、Web ページに表示しようとしているデータベース レコードは、MySQL に保存されている大きなファイルです。

データベース構成には、MySQL、Tomcat、Spring、および Hibernate が含まれています。 @Lob、@Basic(fetch=FetchType.LAZY)、および @Column アノテーションを使用して、エンティティ クラスで遅延 BLOB フィールドを定義しました。

ただし、BLOB フィールドを遅延としてマークしたにもかかわらず、データ量が膨大な場合、OutOfMemoryError が発生します。また、各行の blob フィールドに null 値を設定しようとしました。これによりメモリの問題が解決され、遅延読み込み動作が意図したとおりに機能していないと思われます。

混乱の原因は次のとおりです。オンラインで入手可能な矛盾した情報。 @Lob フィールドが本質的に遅延であることを示す情報源もあれば、すべてのドライバーとデータベースで遅延読み込みが一貫して機能しない可能性があることを示唆する情報源もあります。

考えられる解決策:

  • 「偽の」1 対 1 マッピングを使用します: ドキュメントで提案されているように、LOB フィールドに別のクラスを作成し、fetch="select" と Lazy を使用してそれらを 1 対 1 としてマッピングできます。メインエンティティに「true」を設定します。このアプローチにより、LOB フィールドは明示的に要求された場合にのみロードされるようになります。
  • バイトコード インストルメンテーションを試してください: 一部のユーザーは、Javaassist や Cglib などのバイトコード インストルメンテーション ライブラリによる遅延 BLOB ロードの成功を報告しています。 .
  • ドキュメントとフォーラムを確認します: Hibernate と Spring のドキュメント、およびオンライン フォーラムを徹底的に検索して、特定の状況に対するさらなる洞察と潜在的な解決策を探します。

以上がSpring/Hibernate アプリケーションで遅延 BLOB 読み込みが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。