2013-11-26 150 views
5

我希望通過使用新表來存儲日誌,使用更改的用戶,日期以及每個更新/插入中更改的內容,從而爲我的模型實體之一實施歷史記錄跟蹤/審計。使用JPA進行歷史跟蹤

我使用EclipseLink作爲我的JPA提供程序,但我不想使用它的History Policy,因爲提供程序可以在將來進行更改。出於同樣的原因,我不能使用Hibernate Envers

我看着auditing support which Spring Data provides,但它看起來非常基本,它只允許您存儲創建或修改實體和日期的用戶,而不是更改。

我也知道JPA的prePersistpreUpdate,但specificacion說:

一般來說,便攜式應用程序不應 調用EntityManager的或查詢操作,訪問其他實體 實例的生命週期方法,或修改相同持久性 上下文中的關係。

是否有乾淨,輕鬆和便攜的方式來實現?

回答

1

我用一個單獨的EJB服務手動完成了這項工作,該服務的職責是提取歷史數據並將其保存爲MAP。這是非常基本的,其中只保存了基本數據和關係ID,但這對我來說已經足夠了。

基本上我用一點思考來檢查持久屬性。

+0

謝謝安德烈,我會嘗試這樣的事情 – zootropo