@OneToMany中的fetch默认是FetchType.LAZY,而在hibernate下,默认取完数据后就会断开session,这时如果程序对关联数据有需求,就会抛出延迟加载的异常。
解决方案是,在web.xml中加上
openEntityManagerInViewFilterorg.springframework.orm.jpa.support.OpenEntityManagerInViewFilterentityManagerFactoryBeanNameentityManagerFactoryopenEntityManagerInViewFilter/*
假如使用的不是EntityManager,而使纯hibernate,那就如下配置
hibernateFilterorg.springframework.orm.hibernate3.support.OpenSessionInViewFiltersessionFactoryBeanNamesessionFactoryhibernateFilter/*
2015-05-28补:这样会导致session的生命周期扩展至整个http请求,如果在controller里对实体类进行了set操作,会被实时记录到数据库中,所以还是要根据项目取舍。