我的系統(tǒng)是使用hibernate3,struts2,spring搭建。
在我的系統(tǒng)中,此異常出現(xiàn)我感覺比較奇怪,我已經(jīng)配置spring OpenSessionInViewFilter,如下
<filter>
<filter-name>lazyLoadingFilter</filter-name>
<filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>lazyLoadingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
并確保將此過濾器配置到struts2之前,而且我在
中沒有配置fetch和lazy屬性,代碼中的關(guān)聯(lián)對象之間的調(diào)用也是沒有問題的。我認(rèn)為上面的配置應(yīng)該是已經(jīng)起到作用了。
但是在系統(tǒng)中仍然可能報no session 錯誤,我將操作對象對應(yīng)的數(shù)據(jù)庫中記錄的ID進行修改后,不再報此錯誤,修改回來后再次報錯(其他任何字段都沒有修改過,一次可以知道唯一導(dǎo)致no session錯誤的問題就是對象的ID,而和其他參數(shù)都沒有任何關(guān)系,和spring opensessioninviewfilter也沒有關(guān)系,與fetch,lazy也沒有關(guān)系).
在出現(xiàn)此問題之前,數(shù)據(jù)庫有從外來源導(dǎo)入過數(shù)據(jù),通過 del plsql工具導(dǎo)入的。我懷疑是否與導(dǎo)入數(shù)據(jù)的原因有關(guān)。于是我測試通過系統(tǒng)功能新建了測試對象,對新建對象的操作也沒有報no session錯誤。

解決:
我將有問題的A對象的數(shù)據(jù)庫中的ID 手動修改成可以正確執(zhí)行的,原有數(shù)據(jù)操作不會報錯了。新建數(shù)據(jù)暫時沒有發(fā)現(xiàn)有此問題。但是導(dǎo)致此問題的原因不明,如果有人有遇到和我一樣的情況,請幫我解惑,十分感激。
posted on 2009-12-25 10:56
liuyimx 閱讀(860)
評論(1) 編輯 收藏 所屬分類:
hibernate