显示地初始化Hibernate代理对象
Person person = (Person)session.load(Person.class,1);
if(!Hibernate.isInitialized(person)){
Hibernate.initialize(person);
}
session.close();
person.getName();
如果不显示的初始化Hibernate代理对象,且在session范围内程序没有访问Person导致Person没有初始化,在session关闭后再访问person对象,会抛出以下异常:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
这个东西还是挺有用的,如下:
对于懒加载的对象显示地初始化,既不延长session的范围,也阻止了出错.
Person person = (Person)test.session.get(Person.class,1);
Hibernate.initialize(person.getAddresses());//person.getAddresses()是一个set集合
session.close();
System.out.println(person.getAddresses());
分享到:
评论