Spring Hibernate Blob の遅延読み込み
Hibernate の遅延読み込みにより、データの遅延取得が可能になり、メモリ消費が削減され、パフォーマンスが向上します。ただし、一部のユーザーは、Hibernate での LOB (ラージ オブジェクト バイナリ) の遅延ロードに関する問題に遭遇しています。
MySQL、TOMCAT、Spring、および Hibernate を使用した一般的な Hibernate 構成では、@Lob アノテーションが付けられたエンティティには遅延フェッチが必要です。デフォルトでは。ただし、一部のユーザーは、この動作が異なるドライバーやデータベース間で一貫性がないことを報告しています。
潜在的な問題の 1 つは、バイトコード インストルメンテーションに関連しています。バイトコード操作に Javaassist や cglib などのフレームワークを使用すると、Hibernate による遅延ロード アノテーションの解釈方法に影響を与える可能性があります。
LOB の遅延ロードが失敗する場合、推奨される回避策は、LOB のプレースホルダーとして 1 対 1 マッピングを使用することです。 LOB フィールド。これには、同じテーブルと主キーを参照するが、プロパティとして必要な LOB フィールドのみを含む別のクラスを作成することが含まれます。マッピングは fetch="select" および Lazy="true" として構成する必要があります。これにより、明示的に要求された場合にのみ LOB データが取得されるようになります。
このソリューションを実装すると、潜在的な互換性の問題や Hibernate の遅延ロード メカニズムの制限に対処しながら、LOB の遅延ロードを効果的に有効にすることができます。
以上がSpring を使用した Hibernate で LOB の遅延ロードを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。