我想为我的某个模型实体实现历史记录跟踪/审核,方法是使用新表来存储日志,其中包含进行更改的用户,日期以及每次更新/插入中更改的内容。
我正在使用EclipseLink作为我的JPA提供程序,但我不想使用它的History Policy,因为提供程序将来可以更改。出于同样的原因,我不能使用Hibernate Envers。
我查看了auditing support which Spring Data provides,但它似乎非常基本,它只允许您存储创建或修改实体的用户和日期,而不是更改。
我也知道JPA的prePersist
和preUpdate
,但具体说明:
通常,便携式应用程序的生命周期方法不应该 调用EntityManager或Query操作,访问其他实体 实例,或修改同一持久性内的关系 上下文。
有没有干净,简单,便携的方式来实现这个目标?
答案 0 :(得分:1)
我已经使用单独的EJB服务手动完成了这项工作,该服务的职责是提取历史数据并将其另存为MAP。这是非常简陋的,只保存基本数据和关系ID,但这对我的情况来说已经足够了。
基本上我正在通过一些反思来检查持久性属性。