【发布时间】:2013-11-26 12:20:26
【问题描述】:
我想为我的一个模型实体实现历史跟踪/审计,方法是使用一个新表来存储一个日志,其中包含进行更改的用户、日期以及每次更新/插入中发生的任何更改。
我使用 EclipseLink 作为我的 JPA 提供程序,但我不想使用它的History Policy,因为提供程序将来可能会发生变化。出于同样的原因,我也不能使用Hibernate Envers。
我查看了auditing support which Spring Data provides,但它看起来非常基本,它只允许您存储创建或修改实体的用户和日期,而不是更改。
我也知道 JPA 的 prePersist 和 preUpdate,但具体说明如下:
一般来说,可移植应用程序的生命周期方法不应该 调用 EntityManager 或 Query 操作,访问其他实体 实例,或修改同一持久性中的关系 上下文。
是否有一种干净、简单且可移植的方式来实现这一点?
【问题讨论】:
标签: java jakarta-ee jpa