我們正在使用跨多個頁面的嚮導的Seam對話,其中一些屏幕會爲用戶選擇加載大量數據(可以是幾千條記錄)。 Hibernate會話保留所有內容,這對內存使用和性能都是一個問題(因爲刷新需要幾秒鐘的時間)。Seam會話中的休眠會話變得太大
是我們加載數據時唯一的選擇嗎?還是有更好的方法來管理它?
我們正在使用跨多個頁面的嚮導的Seam對話,其中一些屏幕會爲用戶選擇加載大量數據(可以是幾千條記錄)。 Hibernate會話保留所有內容,這對內存使用和性能都是一個問題(因爲刷新需要幾秒鐘的時間)。Seam會話中的休眠會話變得太大
是我們加載數據時唯一的選擇嗎?還是有更好的方法來管理它?
如果您的屏幕在會話中保留了幾千條記錄(顯然取決於這些記錄的大小)長時間,當然,您將遇到問題。
如何解決問題取決於很多因素。
等等
您不必保存一切在交談。
只保留用戶插入的數據併爲查詢使用Event範圍,並在每次訪問嚮導頁面時進行查詢。
只是不保留查詢的結果。
查詢結果沒有放入對話中,Hibernate會話保持結果,Seam保持Hibernate會話處於對話狀態。 – David
使用ehcache將數據緩存在Hibernate級別,但它在加載時仍然會在Hibernate會話中結束。我們確實需要所有的數據。目前我們正在嘗試使用僅存在於服務調用周圍的第二個Hibernate會話,但不確定它是否是最佳選項。 – David