我有一個實體類與JPA管理,我有一個實體需要在其屬性中進行更改。 JPA是否提供了處理這種需求的方法?如何使用JPA實現更改日誌?
回答
見,
http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#History
,並
http://en.wikibooks.org/wiki/Java_Persistence/Auditing_and_Security
如果您使用的EclipseLink它包括歷史支撐。您可以使課程能夠在單獨的歷史表中跟蹤其所有更改。
它在鏈接中說「JPA沒有定義任何特定的歷史支持「,但我可以自己實施嗎,還是沒有辦法做到這一點? – sarunw 2011-04-22 07:24:04
如果你使用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。
我的項目是用純粹的JPA編寫的,沒有那些休眠或春天的猜測,我必須去@postUpdate。你有什麼資源嗎? – sarunw 2011-04-22 03:38:29
在此處找到示例http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Example_of_Entity_event_annotations,但似乎無法在回調中使用entitymanager,可以嗎? – sarunw 2011-04-22 07:09:27
對於那些想通過Spring-Data-JPA整合Hibernate-Envers的人,請看這張票https://jira.springsource.org/browse/DATAJPA-7 – 2011-04-25 07:44:04
- 1. 實體框架5更改日誌如何實現?
- 2. 日誌改變實現?
- 3. 更改DerbyDB/JPA的日誌語言
- 4. 如何實現日誌?
- 5. 無法使用傳統更改日誌生成更新日誌
- 6. 如何調用實體框架SaveChanges()時寫入更改日誌?
- 7. 如何使用Hibernate實現JPA?
- 8. 如何使用JPA實現測試DAO?
- 9. 使用Log4net實現彩色日誌
- 10. 使用Eclipselink/JPA更改實體類型?
- 11. 你更喜歡什麼日誌實現?
- 12. 如何分離日誌實現和API?
- 13. 如何實現日誌系統
- 14. android - 如何實現日誌記錄
- 15. 如何實現呼叫日誌的ContentObserver
- 16. NHibernate.Envers實體屬性更改日誌
- 17. 如何使用Spring Data Jpa實現批量更新?
- 18. 更改日誌表
- 19. 如何使用Log4Net實現日誌文件的自動歸檔
- 20. 如何使用C實現高效地處理日誌文件
- 21. 如何使用rails實現在rails中的日誌記錄?
- 22. CMD日期更改日誌
- 23. 如何更改JAXB實現?
- 24. 更改系統日誌日誌路徑
- 25. 如何更改aws-ruby日誌位置?
- 26. 如何爲表創建更改日誌?
- 27. 如何製作更改日誌?
- 28. 如何更改Go的日誌包
- 29. 如何更改JRebel的日誌目錄?
- 30. 如何更改Flink的日誌目錄
請檢查此鏈接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