`
qingzuochen
  • 浏览: 276522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

显示地初始化Hibernate代理对象

阅读更多
显示地初始化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());
分享到:
评论
Global site tag (gtag.js) - Google Analytics