これはあなたの問題です:
「しかし、私はこのフレームワークを知らないだけで、今は学びたくありません (私はただの初心者です)。」
物事が自動的に行われ、コードを記述する必要さえなかったらいいのですが、残念ながら、物事は常に良いとは限りません。テクノロジーを使用しても意味がありませんが、そのメカニズムを使用するために努力したり、学習したりしたくありません。
たくさんのオプションがあります。
1) ビューでセッションを開きます。これを行うために時間を費やしてください。それは難しいことではありません。これが行うことは、リクエストの存続期間中セッションを開いたままにすることです。そのため、遅延関係にアクセスすると、セッションがそこにあり、データをロードできます。@ Danny.lesnik の答えは正しくありません。私が読んだところによると、彼は、OSiV がアソシエーションを熱心にするだけであり、それが行うことではないことを暗示しています。Spring を使用したくない場合は、おそらく手で OSiV パターンを実装する例を見つけることができます。それはそれほど悪くはないはずであり、おそらく良い学習体験です。
2) 特定のシナリオに必要なすべてのデータをロードできるように、カスタム マッピング/hql を記述します。これは、すべてのオブジェクトをロードするということではありません。テーブルから特定のフィールドをロードして、フェッチを可能な限り無駄なくすることができます。たとえば、hibernate/jpa マッピング/注釈を遅延させてから、結合でテーブル全体の列から特定のフィールドのみをフェッチするカスタム DAO メソッドを作成できます。これは、いくつかのチューニング/キャッシュ/インデックスで非常に高速になる可能性があります。
両方のオプションのうち、1 の方が簡単です。ドキュメントを参照するだけでよく、ほとんどが構成です。OSiV には独自の複雑さがあることに注意してください。たとえば、データを変更しても結果をユーザーに表示する例外があり、トランザクションが特定の方法で構成されている場合、変更はロールバックされます。オプション 2 には、OSiV を必要としないという利点があり、それに付随するすべての複雑さがあります。また、データベースとのやり取りをより詳細に制御できるという利点がありますが、より多くの作業を行わなければならないというトレードオフがあります。