2012-12-25 54 views
2

我可以以某種方式使用春季審計來獲取實體及其舊值和新值的列表更改字段嗎?春季審計獲取更改的字段

我試圖獲取更新的實體列表以及它們的舊日誌和新日誌值。在更新之前,我使用getDeclaredFields來比較舊實體和新實體,並且它可以工作。但仍然想知道是否有一些標準和簡單的解決方法。 我使用spring和hibernate來管理我的實體。 經過研究,我發現可以爲我的目的使用hibernate會話,方法是在更新事件時添加監聽器,並使用event中的getDirtyProperties。但據我瞭解,它需要hibernate事務管理器,並且我已經使用JpaTransactionManager並且不能更改它。

然後有人告訴我今年春天審計功能 http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#jpa.auditing ,問題是它是否能夠提供類似getDirtyProperties?或者也許有另一種解決方法?因爲創建新表是不必要的,而且如果我做對了,春季審計需要在數據庫中存儲審計數據。

+0

春季審計是什麼意思?另外,您是否需要保留每個審覈字段的歷史記錄? – izilotti

+0

更新後的帖子中有詳細信息。需要找出春天是否有一個工具來改變對象的字段。每個審計領域的歷史是不必要的,這可以以某種方式避免? – me1111

回答

2

Spring的Auditable實際上並沒有什麼要求它被存儲在數據庫中,但它也沒有包括你正在尋找哪些字段的細節級別。 Hibernate Envers這樣做,但我相信它只能在數據庫中存儲審計記錄。不過,你也許可以把它作爲一個起點。

+0

謝謝,它幫助:) – me1111