针对Hibernate load方法产生异常的解决方法

以前写项目的时候 自己用过Hibernate load方法的延时加载 可是产生异常,因为HibernateTemlate执完load方法之后会关闭Session 所以如果要解决对象属性产生异常解决的办法有两种:

***种就是实HibernateCallback接口,并将实例传入给HibernateTempalte的excute里。

Java代码

public User (final Integer id)   
{  
 
User user=(User)hibernateTemplate.excute(  
new HibernateCallback(){  
 
public Object doInHibernateException,SQLException{  
 
User user=(User)session.load(User.class,id);  
Hibernate.initialize(user);  
return user;}  
}  
 
 
public User (final Integer id)
{
User user=(User)hibernateTemplate.excute(
new HibernateCallback(){
public Object doInHibernateException,SQLException{
User user=(User)session.load(User.class,id);
Hibernate.initialize(user);
return user;}
}

)

另一种方法就是修改xml把lazey改为false

【编辑推荐】

  1. Hibernate常见面试题汇总
  2. Hibernate入门教程 Hibernate关系映射详解
  3. Hibernate中Session.find/iterator方法
  4. 浅谈Struts分页中的Hibernate如何实现
THE END