Spring および Hibernate での BLOB フィールドの遅延読み込み
データベース テーブルで大きなバイナリ データ (BLOB) を扱う場合、そのデータを最適化することが重要です。パフォーマンスの問題とメモリの消費を回避するための取得。 1 つのアプローチは、必要な場合にのみデータを取得できる遅延読み込みを使用することです。ただし、この手法は Hibernate と Spring で問題を引き起こす可能性があります。
この状況では、データベース、Spring Bean、およびエンティティ クラスを次のように構成しました:
データベース構成(該当部分):
エンティティ クラス (関連するアノテーション):
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "BlobField", columnDefinition = "LONGBLOB")
@Type(type = "org.springframework.orm.hibernate3.support.BlobByteArrayType")
private byte[] blobField;
blobField を遅延としてマークしているにもかかわらず、大量のデータを取得すると OutOfMemoryError が発生します。これは、遅延読み込みメカニズムが期待どおりに動作していないことを示しています。
ドキュメントとユーザー エクスペリエンスに基づいて、BLOB の遅延読み込みに影響を与える可能性のある要因をいくつか示します。
問題を解決するには、次の手順を検討してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3