SSH錯誤2:LazyInitializationException異常延遲加載屬性解決方案web
使用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
<!-- 使用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>session