我有一个由JPA管理的实体类,我有一个实体需要在其属性中记录更改。 JPA是否提供了处理此类要求的任何方法?
答案 0 :(得分:4)
如果您将Hibernate用作JPA提供程序,请查看Hibernate-Envers。
如果您使用Spring,则请Hades或其继任者Spring-Data-JPA。
两者(Envers和Hades / Spring-Data-JPA)都提供审计功能。 Hibernate Envers非常强大,Hades / Spring-Data-JPA更轻(Hades reference, chapter auditing)。
如果您不想/可以使用其中任何一个,那么您可能必须挂钩实体生命周期。与@PostUpdate和co。
答案 1 :(得分:2)
请参阅,
http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#History
和
http://en.wikibooks.org/wiki/Java_Persistence/Auditing_and_Security
如果您使用EclipseLink,则包含历史支持。您可以启用类以在单独的历史表中跟踪其所有更改。