私は、モデルが多数のGroup
を含むを含むWebアプリケーションを開発しています。HTTPリクエストが。を表示するようになります。すぐに全部欲しくないので、たくさんあります。に保存され、が閉じられます。次に、アプリケーションは名前と説明を表示して応答します。次に、新しいHTTPリクエストが届き、グループの一部のユーザーが表示される場合があります。からプルされ、アプリケーションはリストにアクセスしようとします。それぞれのプロキシは以前に閉じられていたプロキシに関連付けられていたため、Hibernateは例外をスローしませんか?HTTPセッション内のHTTPリクエスト間で遅延読み込みを行うにはどうすればよいですか?List
Users
Group
Users
FetchType.LAZY
Group
HTTP session
Hibernate Session
Group
Group
HTTP Session
User
Hibernate Session
3 に答える
1
セッションで保存する必要はないと思います。関連付けが必要な場合は、クエリを実行します。
アップデート
Eager
コレクションのサイズが小さいか管理しやすい場合を除いて、読み込みは控えてください。たとえばGroups
、各グループに少数のユーザーがいるとします。
逆マッピングがある場合はgroup id
、後続の呼び出しでユーザーリストを照会するために使用できます。
于 2012-11-28T15:47:21.573 に答える
1
ユーザーやグループを(オブジェクトとして)セッションに入れないでください。最良のシナリオは、セッションにグループIDを入れ、必要に応じてグループとユーザーをロードすることです。
パフォーマンスが気になりますか?Hibernateの第2レベルのキャッシュでこの問題を解決しましょう。オブジェクトマッピングを正しく構成した場合、キャッシュはグループごとのすべてのユーザーの取得をサポートする必要があります。
<class name="Group" table="...">
<cache .../>
<bag name=users" ...>
<cache ....>
...
</bag>
</class>
于 2012-11-28T17:01:00.750 に答える
0
Open Session In Viewを検討しましたか?
于 2012-11-28T16:52:20.173 に答える