我想將Hibernate對象添加到HTTP會話中。 HTTP會話參與集羣環境並通過序列化進行復制。在序列化HTTP會話時,會拋出延遲加載異常,因爲它超出會話範圍。似乎應該有一種方法來指示hibernate不嘗試序列化未被加載的對象。畢竟,這是對象圖的狀態,並且序列化會轉儲對象圖的狀態。如果一個對象僅僅是一個代理,因爲它沒有被加載,那麼只有代理應該被序列化。對?無論如何,這是我希望看到的行爲。任何想法如何做到這一點?在序列化休眠對象時避免延遲加載異常
當然,期望是序列化的對象可以在另一臺服務器上反序列化,並且會話將被適當地處理。
Funtik,感謝您的迴應!這涉及遺留應用程序將Hibernate對象放入HTTP會話中。這工作得很好,直到它被部署到集羣環境中,並且使用序列化來複制狀態。重構只存儲對象ID將是一件很有意義的事情。我希望找到一個解決方案,Hibernate會避免序列化未加載的對象。 – ptsw 2013-03-27 21:47:26
嘗試從休眠會話中分離對象,然後將其添加到HTTP會話 – WeMakeSoftware 2013-03-27 22:03:59
Funti,另一個很好的建議,但遺憾的是在我的情況下這是可行的。該應用程序使用Tapestry,它爲封面下的會話添加了某些類屬性。因此,我沒有可見性指出將Hibernate對象添加到會話中。 – ptsw 2013-03-28 14:24:55