我工作的一個Grails web應用程序Hibernate的Session範圍錯誤
該應用程序是一個非常緩慢的網絡上運行,並且正在運行的IE 6,又老又慢客戶端PC的訪問的數據庫連接是非常慢,數據庫已結束工作。所以最小化數據庫調用和數據傳遞是一個優先事項
我知道使用會話範圍並不是最佳實踐。在這種情況下,我認爲這將是最好的。考慮到我的所有網頁需要相同的對象,而這將讓他們在
獲取很多次,我把我的對象在會話範圍session.obj = obj
它正常工作與一個問題 由於該系統是如此在網頁鏈接(控制器/操作)上減慢多次點擊是可能的。
當發生這種情況我在一些情況下,得到一個錯誤 org.hibernate.HibernateException:非法嘗試集合有兩個打開的會話
這個代碼
if (!obj?.isAttached()) {
obj?.attach()
}
我有發生的錯誤關聯將對象附加到休眠會話,所以我可以懶加載相關的對象 我不想急於獲取(可能是解決方案) 我似乎錯誤是當對象被連接多次時引起的。這種情況似乎並沒有阻止這個問題。這是一種競賽狀態嗎?
我只是想知道如果任何人有一個解決這個問題,或者知道原因
謝謝