hibernate 懒加载失败

本文详细解析了在使用Spring框架与Hibernate进行整合时遇到类加载问题的排查步骤,包括如何在web.xml中正确配置OpenSessionInViewFilter以避免类加载错误,并强调了Struts2Filter配置需在OpenSessionInViewFilter之后的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有关懒加载,我也不再介绍。我相信只要用过hibernate都会对它有一定了解。在javaeye上也看到了很多类似的问题。在此我也不用重复。

    如果出现类似错误,首先检查是否在web.xml中配置了如下代码:

Java代码
  1. <filter>      
  2.         <filter-name>opensession</filter-name>      
  3.         <filter-class>      
  4.             org.springframework.orm.hibernate3.support.OpenSessionInViewFilter      
  5.         </filter-class>      
  6.             <init-param>         
  7.             <param-name>singleSession</param-name>         
  8.             <param-value>true</param-value>         
  9.             </init-param>       
  10. </filter>      
  11. <filter-mapping>      
  12.         <filter-name>opensession</filter-name>      
  13.         <url-pattern>/*</url-pattern>      
  14. </filter-mapping>   

  很多人在配置了以上代码,却问题依旧。这样就要做如下分析:

    每次请求,是否已经经过了 OpenSessionInViewFilter 此过滤器。如果没有经过它,那么你的配置实际上是无效的。所以,此配置我建议配置到web.xml中的第一个过滤器中,以免干扰!我越到过很多人问我,问题最终都出在这个地方。特别是加入了strtus以后。很容易出现此类问题例如如下配置:

Java代码
  1. <!-- Struts filter -->   
  2.     <filter>   
  3.         <filter-name>struts2Filter</filter-name>   
  4.         <filterclass>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>   
  5.     </filter>   
  6.     <filter-mapping>   
  7.         <filter-name>struts2Filter</filter-name>   
  8.         <url-pattern>/*</url-pattern>   
  9.     </filter-mapping>  

StrutsPrepareAndExecuteFilter配置一定要在OpenSessionInViewFilter 之后。

原因很简单:StrutsPrepareAndExecuteFilter已经全部拦截,OpenSessionInViewFilter 将会失效!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值