Hibernate+Spring数据延迟加载问题解决方案

2014-11-24 18:49:34 · 作者: · 浏览: 1

第一种:更改lazy属性为:false


第二种:加
OpenSessionInViewFilter
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

flushMode
AUTO



OpenSessionInViewFilter
/*


以上两种方法都有点问题。


第三种是自己写代码,手动加载


代码如下:


public class LazyDaoImpl extends HibernateDaoSupport implements LazyDao {


/* (non-Javadoc)
* @see com.chinarck.DAO.LazyDao#loadContractService(java.io.Serializable)
*/
@Override
public Object loadContractService(Serializable id) {
final int idd=(Integer) id;
// Entercontract e= getHibernateTemplate().get(Entercontract.class, id);
// getHibernateTemplate().initialize(e.getService());
Entercontract e=getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException,SQLException{
//System.out.println(idd);
Entercontract ee=(Entercontract) session.get(Entercontract.class,idd);
//System.out.println(ee.getConId());
Hibernate.initialize(ee);
ee.getService();
//System.out.print(ee.getService().size());
return ee;

}
});
return e;
}



}


注意:一定要用get方法。load也不行。