Hibernateエージェントオブジェクトを表示して初期化


Hibernateエージェントオブジェクトを表示して初期化
Person person = (Person)session.load(Person.class,1);
if(!Hibernate.isInitialized(person)){
	Hibernate.initialize(person);
}
session.close();
person.getName();

Hibernateエージェントオブジェクトの初期化が表示されず、セッションの範囲内でプログラムがPersonにアクセスしていないためPersonが初期化されていない場合、セッションが閉じた後にpersonオブジェクトにアクセスすると、次の例外が放出されます.
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
これはとても役に立ちます.以下のようにします.
怠惰なロードのオブジェクトの表示の初期化は、セッションの範囲を延長することも、エラーを阻止することもできる.
Person person = (Person)test.session.get(Person.class,1);
Hibernate.initialize(person.getAddresses());//person.getAddresses()   set  
session.close();
System.out.println(person.getAddresses());