0
我正在Seam項目上工作,並有以下問題 - 有一個Ajax編輯窗體和許多與此窗體的交互影響(變異)基礎實體,並立即在數據庫中更改,但我想' t僅當用戶按下「保存」按鈕時,這些更改纔會保留在數據庫中。我正在考慮脫離實體來實現這一點,但想知道如何(也尋找更聰明的解決方案)。Seam - 如何去實體
我正在Seam項目上工作,並有以下問題 - 有一個Ajax編輯窗體和許多與此窗體的交互影響(變異)基礎實體,並立即在數據庫中更改,但我想' t僅當用戶按下「保存」按鈕時,這些更改纔會保留在數據庫中。我正在考慮脫離實體來實現這一點,但想知道如何(也尋找更聰明的解決方案)。Seam - 如何去實體
您對實體所做的更改會立即反映出來,使其與數據庫同步。要分離實體,您可以使用entityManager.detach(object)
或entityManager.clear()
,但這會分離所有被管實體。
EntityManager的flush模式是FlushModeType.AUTO
默認,而是試圖FlushModeType.COMMIT
其中的變化只在明確的承諾/沖洗&然後用entityManager.flush()
的持久化上下文對底層數據庫同步刷新。
entityManager.detach(對象)可能是一件很酷的事情,但可用於Java 6以後,我的項目使用java 5. – Jeriho 2011-05-11 09:06:19
嘗試手動管理事務(BMT),而不是使用CMT,所以您將能夠在實體進行更改後需要。 – 2011-05-11 16:52:44