我的系統是使用hibernate3,struts2,spring搭建。
在我的系統中,此異常出現我感覺比較奇怪,我已經配置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屬性,代碼中的關聯對象之間的調用也是沒有問題的。我認為上面的配置應該是已經起到作用了。
但是在系統中仍然可能報no session 錯誤,我將操作對象對應的數據庫中記錄的ID進行修改后,不再報此錯誤,修改回來后再次報錯(其他任何字段都沒有修改過,一次可以知道唯一導致no session錯誤的問題就是對象的ID,而和其他參數都沒有任何關系,和spring opensessioninviewfilter也沒有關系,與fetch,lazy也沒有關系).
在出現此問題之前,數據庫有從外來源導入過數據,通過 del plsql工具導入的。我懷疑是否與導入數據的原因有關。于是我測試通過系統功能新建了測試對象,對新建對象的操作也沒有報no session錯誤。

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