亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查詢完之后就關閉session,但是當在action調用這個方法的時候就報如下錯誤

查詢完之后就關閉session,但是當在action調用這個方法的時候就報如下錯誤

PHP
皈依舞 2023-04-09 11:17:10
public Fwxx select(Class c, int fwid){ Session session=HibernateSessionFactory.getSession(); Fwxx fwxx=(Fwxx)session.get(c,fwid); System.out.println(fwxx.getLxr()); HibernateSessionFactory.closeSession(); return fwxx; } 查詢完之后就關閉session,但是當在action調用這個方法的時候就報 could not initialize proxy - the owning Session was closed
查看完整描述

2 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

按照你的講法,感覺并不是在調用方法時拋異常,而是在調用方法后使用返回對象Fwss的屬性時拋的異常。 
這是因為你Fwxx對象肯定還包含其他對象,而且還用了hibernate的遲加載,當具體使用到這個對象時hibernate才會去數據庫里查,而這時你的session已經關閉了,所以會拋異常。 
比較傳統的解決辦法是加一個Filter,把開閉session的操作放在filter里面來保證在request的生命周期內有一個活動的session對象。 
當然還有其他實現方法,如aop,或在action里控制session等等,前一種比較普遍,后一種要寫許多代碼,而且還破壞了分層結構,所以不太推薦,不過在小規模的系統中還是比較有用的。

查看完整回答
反對 回復 2023-04-12
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

關閉是用session.close()試一下 感覺應該一樣

查看完整回答
反對 回復 2023-04-12
  • 2 回答
  • 0 關注
  • 145 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號