`
wangshiyang
  • 浏览: 66332 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate could not initialize proxy - no Session

阅读更多
 could not initialize proxy - no Session

异常:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)

原因:hibernate3 many-to-one的默认选项是 lazy = "proxy"
解决方法一:<many-to-one>  & <set> 中设置 lazy="false"
解决方法二:在web.xml里面添加
<filter>
    <filter-name>OpenSessionInViewFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    <init-param>
      <param-name>sessionFactoryBeanName</param-name>
      <param-value>openplantSessionFactory</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>OpenSessionInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

第二种解决方法的原理就是当前的这个action从请求到响应之后这段时间  session都是处于开启状态 ,如果没有配置  则spring会在dao的getHibernateTemplete()之后就关闭了session,但是这时候lazy的值为fase,所以就没有连接查询了!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics