Hibernate.initialize() - 遅延ロードのコレクションやプロキシを強制的に初期化する
2009/02/25 13:55Update
セッションが閉じる(close)前に、Hibernate.initialize()を利用すれば、エンティティやコレクションに対して強制的に初期化することができます。
Hibernate LAZYロードについて
――――――――――――――――――――――――――――――
Hibernate究明 - Hibernate のLAZYロード
Hibernate究明 - Hibernate のLAZYロード及びOpenSessionInView
――――――――――――――――――――――――――――――
LAZYロードの場合、ビューの描画が完了するまでSession を常にオープンにしておくなら、問題はないのですが、ビジネス層が分離している分散アプリケーションでは、フロント側(Webシステムの場合WEB層)で必要になるすべてのデータを事前(セッションが閉じる前)に用意しなければなりません。
すなわち、フロントで必要になるLAZYロードのプロパティやコレクションに対して、正しく値を設定(ロード)する必要があります。
Hibernateは、static の Hibernate.initialize() や Hibernate.isInitialized()メソッド を提供し、遅延ロードのコレクションやプロキシを強制的に初期化することができます。
使い方例:
.
――――――――――――――――――――――――――――――
Hibernate究明 - Hibernate のLAZYロード
Hibernate究明 - Hibernate のLAZYロード及びOpenSessionInView
――――――――――――――――――――――――――――――
LAZYロードの場合、ビューの描画が完了するまでSession を常にオープンにしておくなら、問題はないのですが、ビジネス層が分離している分散アプリケーションでは、フロント側(Webシステムの場合WEB層)で必要になるすべてのデータを事前(セッションが閉じる前)に用意しなければなりません。
すなわち、フロントで必要になるLAZYロードのプロパティやコレクションに対して、正しく値を設定(ロード)する必要があります。
Hibernateは、static の Hibernate.initialize() や Hibernate.isInitialized()メソッド を提供し、遅延ロードのコレクションやプロキシを強制的に初期化することができます。
使い方例:
Cat cat = ... Hibernate.initialize(cat);//cat プロキシを強制的に初期化します Hibernate.initialize( cat.getKittens() );//kittens コレクションに対して強制的に初期化します
.
Sponsored Link
- Relative Articles
- Hibernate設定ファイルその1 - hibernate.cfg.xml - (2008/07/09 14:08)
- Hibernate c3p0 - よく利用されているコネクションプーリング - (2008/07/09 15:00)
- Hibernate 方言(Dialect)一覧 - (2008/07/09 15:10)
- Hibernate のSessionとSessionFactory - (2008/07/09 15:51)
- ThreadLocal でHibernate Session を効率的に管理する - (2008/07/09 18:43)
- Hibernateで複数のDBに接続するには? - (2008/07/09 18:47)
- Hibernateとは - (2008/07/11 14:23)
- Hibernate のインストール - (2008/07/24 11:01)
- Hibernate の開発手順 - (2008/07/24 12:44)
- Hibernate SQLをログに出力方法 - (2008/07/30 16:06)