Spring控制的Hibernate的生命周期只針對(duì)數(shù)據(jù)層和服務(wù)層,表現(xiàn)層就沒這個(gè)福分了還有就是只有在session沒有關(guān)閉的情況下運(yùn)行Obj.getXxx()時(shí)才會(huì)執(zhí)行select語句從數(shù)據(jù)庫加載對(duì)象(這就是所謂的延遲加載)session已經(jīng)關(guān)閉,此時(shí)再運(yùn)行Obj.getXxx()方法,Hibernate就會(huì)拋出"Could not initialize proxy - the owning Session was closeed"的異常。不過可以通過 org.springframework.orm.hibernate3.support.OpenSessionInViewFilter過濾器來彌補(bǔ)這一缺陷。在WEB.XML中加入以下內(nèi)容:
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<!-- singleSession默認(rèn)為true,若設(shè)為false則等于沒用OpenSessionInView -->
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
==============如果還是不行則在DAO里加入Hibernate.initialize(Obj.getXxx());