我有一個應用程序,用戶需要輸入數據,但表單分佈在多個屏幕上,每個屏幕都需要用戶在用戶更改頁面時將數據發送到服務器。在會話中保留Hibernate/Grails域對象
通常情況下,我會在會話中存儲域對象,並讓用戶在會話中更改此對象。一旦所有用戶更改完成,我會立即將所有更改保存到數據庫。這種形式不是流程,用戶可以自由地前往一頁並返回。
使用Grails,我想知道最好的方法。這個域對象是高度嵌套的,因此爲web層創建一個psudo域對象(然後將域逐個域映射到域obj)不是一個選項。
我想知道如果在會話中存儲Hibernate域對象是個好主意嗎?我有Hibernate會話問題,但由於域對象從休眠會話分離。
非常重要:我無法保存每個頁面上的數據庫更改。一旦用戶完成所有更改,我只能將域對象保存到數據庫。如前所述,這可能會跨越多個http請求。每次用戶更改都需要臨時存儲在某個地方。
我已經嘗試了幾次嘗試將域obj保留在會話中,然後在每次提交時,重新附加該域對象並進行更新,但grails會在每個請求上刷新會話,以便導致不完整的域對象被保存。
我希望有人能借我一些關於在內存中存儲用戶更改的建議,然後一次性向數據庫提交更改。
感謝