關於多次啓動事務時改變Session中的對象存入了數據庫的解決方案

首先說明一下小編在做項目的時候遇到的棘手的問題:  使用遞歸展現添加和修改頁面中樹狀的上級的的部門列表

此處是添加部門代碼,並沒有什麼異常但是在接下來的用戶信息就會產生異常了。


這就是產生的異常情況,另外可以發現下面的圖中的所屬部門的值已經改變,說明數據庫中的值已經發生了改變。

而且無論點擊新建或是修改,每點擊一次或刷新都會導致“┣”的增加。



造成異常的原因分析:


當一個action中存在兩次及其以上的開啓事務的情況時,如果使Session對象中數據進行了改變,Session中的持久層就會更新到數據庫中,進而改變了原來的數據。如何不改變Session對象同時還可以將裏面的數據改變並且顯示出來。


解決方案:

現在的解決問題就是如何不改變Session,於是乎使用副本拷貝一份Session,這時隨便操作副本,因爲它與數據庫沒有任何關係。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章