請問 Hibernate 錯誤 associate a collection with two open sessions

cinc發表於2003-08-08
net.sf.hibernate.HibernateException:
Illegal attempt to associate a collection with two open sessions

在 swing 程式裡,使用 ThreadLocal 管理 session

實體關係:
1:n
Project <-----> Buildings

Buildings collection 採用 Lazy init

主介面:專案列表,從 db 中讀入 projects,buildings 沒有讀入記憶體
在主介面,使用者雙擊某個專案,把這個 project 作為引數傳入 projectDialog 進行修改

building 在 projectdialog lazy init 了
但是在 projectdialog 點選存檔按鈕 save(project) 時出現錯誤:
net.sf.hibernate.HibernateException:
Illegal attempt to associate a collection with two open sessions

後來,我在 projectdialog 開始時再次從 db 中 load 這個 project
就沒出現這個錯誤。

經過跟蹤, 主介面 和 projectDialog 用的是同一個 session

到網上找不到這個錯誤,不知哪位大俠遇到過這個錯誤,解釋下。
謝謝

相關文章