5

我有一个由 JPA 管理的实体类,并且我有一个需要在其属性中记录更改的实体。JPA 是否提供任何方法来处理这种需求?

4

2 回答 2

4

如果您使用 Hibernate 作为 JPA 提供程序,请查看Hibernate-Envers

如果您使用 Spring,则在Hades或其继任者Spring-Data-JPA中使用。

两者(Envers 和 Hades/Spring-Data-JPA)都提供审计功能。Hibernate Envers 非常强大,而 Hades/Spring-Data-JPA 更轻量级(Hades 参考,章节审核)。

如果您不想/不能使用它们中的任何一个,那么您可能必须挂钩实体生命周期。与@PostUpdate和合作。

于 2011-04-21T10:39:35.257 回答
2

看,

http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#History

和,

http://en.wikibooks.org/wiki/Java_Persistence/Auditing_and_Security

如果您使用的是 EclipseLink,它包括历史支持。您可以让一个类在单独的历史表中跟踪其所有更改。

于 2011-04-21T13:03:01.360 回答