2011-04-06 99 views
13

我們使用Hibernate envers來存儲數據的歷史修訂版本,因此需要將數據恢復到某個修訂版本。由於我們使用Version列來使用樂觀鎖定方法,所以當我嘗試保存以前版本的數據時,我得到StaleObjectException。有沒有辦法強制Hibernate存儲以前版本的數據?Hibernate Envers將數據還原爲版本

+0

非常好的問題。你能告訴我們你是怎麼做的嗎?試圖加載修訂,然後保存它?從版本複製到實際的對象? – 2011-04-06 09:54:04

+0

我想加載修訂並使用javax.persistence.EntityManager的合併方法保存它。 – Rakesh 2011-04-06 10:45:53

+0

瀏覽博客。這可能有幫助。 http://encodo.com/en/blogs.php?entry_id=22 – 2011-09-07 08:13:57

回答

2

這是一個很棒的問題。我在envers文檔中沒有找到類似的東西,但我確定這是一個常見問題。作爲一種解決方法,您可以在所需的對象版本上設置屬性(例如,在構造函數中)

+1

這是一個痛苦的解決方法,但看起來沒有其他選擇。 – Rakesh 2011-04-07 17:41:56