システムのパフォーマンスを向上させるために、遅延読み込みを全面的に使用する必要があることが提案されています。これは、「mappedBy」プロパティを使用した OneToOne マッピングを @OneToMany マッピングに変更することです。これは、アプリケーションの速度低下につながるデータベースからの不要なデータのロードに対処して停止するためです。
多層システム (基本的に 2 層) を実行します。JSF を使用するフロント エンドと、ビジネスおよびデータベース アクセス レイヤーを含むバック エンドがあります。フロントとバックはビュー EJB と通信しますが、EJB には実際のロジックはありません。使用されるその他のテクノロジー - Spring および Hibernate
さて、トピックについて読んだ後、遅延読み込みの使用は、正しく適用する必要があるという点で特効薬ではないようです。遅延読み込みごとに、Select ステートメントが発行されてデータがフェッチされます。フロントエンドが遅延ロードされるプロパティにアクセスし、セッション/接続がバックエンドで閉じられた場合、null が返されるという問題もあります。
上記は正しい懸念ですか?
では、遅延読み込みソリューションまたはパフォーマンス改善を実装するための最善のアプローチ/プラクティスは何ですか? 可能な限り、データ モデルをやり直さないことが望まれます。
最初は、DBA グループと協力して、2 つのシステム間で何が起こっているか、クエリがどのように見えるか、データをどのように使用しているかなどの理想を把握することでした。問題点を特定し、Hibernate オブジェクト/クエリを調べて、改善するのが一番です。また、フロントエンドを調べて、データが背面から前面に渡されて表示される内容と方法を決定します。
良いアプローチ/他のアプローチ?