如何用JPA实现变更日志?
我有一个由 JPA 管理的实体类,并且有一个需要记录其属性更改的实体。 JPA是否提供了处理此类需求的方法?
I have an entity class manged by with JPA, and I have one entity that needs to be loged changes in its property. Does JPA provides any ways to handle this kind of requirement ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 Hibernate 作为 JPA 提供程序,请查看 Hibernate-Envers。
如果您使用 Spring,请使用 Hades 或其后继者 Spring-Data-JPA。
两者(Envers 和 Hades/Spring-Data-JPA)都提供审计功能。 Hibernate Envers 非常强大,Hades/Spring-Data-JPA 更轻(Hades 参考,章节审核)。
如果您不想/不能使用其中任何一个,那么您可能必须挂钩实体生命周期。与 @PostUpdate 和 co。
If you use Hibernate as JPA provider then have a look at Hibernate-Envers.
If you use Spring, then have at Hades, or its successor Spring-Data-JPA.
Both (Envers and Hades/Spring-Data-JPA) provide auditing functionality. Hibernate Envers is very powerful and Hades/Spring-Data-JPA is more light (Hades reference, chapter auditing).
If you do not want/can use any of them, then may you have to hook in the entity lifecycle. with @PostUpdate and co.
请参阅
http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#History
和
http://en.wikibooks.org/wiki/Java_Persistence/Auditing_and_Security
如果您使用 EclipseLink,它包括历史支持。您可以使类能够在单独的历史表中跟踪其所有更改。
See,
http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#History
and,
http://en.wikibooks.org/wiki/Java_Persistence/Auditing_and_Security
If you are using EclipseLink it include historical support. You can enable a class to have all of its changes tracked in a separate historical table.