0

Hibernate で、department というクラスがあり、そこに従業員のリストが含まれているとします。従業員のリストを調べて、まだ初期化されているかどうかを判断する方法はありますか? アクセスするプロパティに関係なく、遅延初期化例外が発生します。例外を取得せずに初期化をテストする方法はありますか?

初期化されているかどうかを確認したいのですが、そうでない場合は、データのクエリを実行して入力してください。

4

2 に答える 2

1

手動でクエリを実行する必要はありません。遅延初期化の要点は、データにアクセスするときに ORM がそれを処理することです。

遅延初期化例外が発生している場合は、休止状態のセッションが開いていないため、子を取得できないことを意味します。

open-session-in-view を使用するか (Web アプリで、リクエストの存続期間中セッションを開いたままにします)、または親がロードされるときに事前にコレクションを初期化します (データをロードするためのオーバーヘッドの短所があります)。常に必要な場合は問題ありません)。

于 2011-10-26T21:57:46.767 に答える
1

従業員のリストを調べて、まだ初期化されているかどうかを判断する方法はありますか?

Hibernate.isInitialized()を使用して、休止状態エンティティが初期化されているかどうかを確認できます。

初期化されているかどうかを確認したいのですが、そうでない場合は、データのクエリを実行して入力してください。

Hibernate.initialize()を使用して、休止状態エンティティの初期化を強制できます。まだ初期化されていない場合は、クエリを実行してデータを入力します。

于 2011-10-27T01:41:16.810 に答える