@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操作,会被实时记录到数据库中,所以还是要根据项目取舍。

赞助本站,网站的持续发展离不开你们的支持!一分也是爱ヾ(◍°∇°◍)ノ゙
 本文链接: ,花了好多脑细胞写的,转载请注明链接喔~~
登陆
      正在加载评论