hibernate load方法产生异常解决办法

以前写项目的时候 自己用过hibernate的延时加载 可是产生异常 因为hibernateTemlate执完load()之后会关闭Session 所以如果要取道对象属性产生异常
解决的办法有两种
第一种就是实现HibernateCallback接口 并将实例传入给HibernateTempalte的excute里
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
User.hbm.xml
<hibernate-mapping>
<class name="onlyfun.caterpillar.User" table="user" lazy="false">
...
</>

你可能感兴趣的:(Hibernate,xml)