首页 > 代码库 > LazyInitializationException

LazyInitializationException

SSH错误2:LazyInitializationException异常延迟加载属性解决方案

使用Hibernate时,经常遇到LazyInitializationException异常,主要是在hibernate的session关闭后, 去调用设有延迟加载的属性,网上也是有很多解决的方案,其中Spring提供的一个方案就是在web.xml增加一个filter,示例代码如:
Xml代码  
<filter>  
       <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>  
       <filter-class>  
           org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter  
       </filter-class>  
   </filter>  
   <filter-mapping>  
       <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>  
       <url-pattern>/*</url-pattern>  
   </filter-mapping>  


上面是JPA的配置,使用hibernate配置差不多只是包名不一样罢了。

<!-- 使用spring解决Hibernate因Session、EntityManager对象关闭导致的延迟加载例外问题 -->
<filter>
 <filter-name>OpenSessionInViewFilter</filter-name>
 <filter-class>org.springframework.orm.hibernate3.support.OpenSessioninViewFilter</filter-class>
</filter>
<filter-mapping>
 <filter-name>OpenSessionInViewFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>


LazyInitializationException