2011-04-21 53 views
5

我有一個實體類與JPA管理,我有一個實體需要在其屬性中進行更改。 JPA是否提供了處理這種需求的方法?如何使用JPA實現更改日誌?

+0

請檢查此鏈接http://www.blogeek.com.ar/2012/12/15/how-to-passively-log-changes-to-your-jpa-model-add-modify-and-delete -with-example /這正是你要找的。 – mgonto 2012-12-16 19:11:58

回答

4

如果你使用Hibernate作爲JPA提供者,那麼看看Hibernate-Envers

如果您使用Spring,那麼請在Hades或其後繼者Spring-Data-JPA

Both(Envers and Hades/Spring-Data-JPA)提供審計功能。 Hibernate Envers功能非常強大,Hades/Spring-Data-JPA更加輕巧(Hades reference, chapter auditing)。

如果你不想/可以使用它們中的任何一個,那麼你可能需要掛鉤實體生命週期。與@PostUpdate和co。

+0

我的項目是用純粹的JPA編寫的,沒有那些休眠或春天的猜測,我必須去@postUpdate。你有什麼資源嗎? – sarunw 2011-04-22 03:38:29

+1

在此處找到示例http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Example_of_Entity_event_annotations,但似乎無法在回調中使用entitymanager,可以嗎? – sarunw 2011-04-22 07:09:27

+0

對於那些想通過Spring-Data-JPA整合Hibernate-Envers的人,請看這張票https://jira.springsource.org/browse/DATAJPA-7 – 2011-04-25 07:44:04