2013-11-26 107 views
5

我希望通过使用新表来存储日志,使用更改的用户,日期以及每个更新/插入中更改的内容,从而为我的模型实体之一实施历史记录跟踪/审计。使用JPA进行历史跟踪

我使用EclipseLink作为我的JPA提供程序,但我不想使用它的History Policy,因为提供程序可以在将来进行更改。出于同样的原因,我不能使用Hibernate Envers

我看着auditing support which Spring Data provides,但它看起来非常基本,它只允许您存储创建或修改实体和日期的用户,而不是更改。

我也知道JPA的prePersistpreUpdate,但specificacion说:

一般来说,便携式应用程序不应 调用EntityManager的或查询操作,访问其他实体 实例的生命周期方法,或修改相同持久性 上下文中的关系。

是否有干净,轻松和便携的方式来实现?

回答

1

我用一个单独的EJB服务手动完成了这项工作,该服务的职责是提取历史数据并将其保存为MAP。这是非常基本的,其中只保存了基本数据和关系ID,但这对我来说已经足够了。

基本上我用一点思考来检查持久属性。

+0

谢谢安德烈,我会尝试这样的事情 – zootropo