Java 使用JPA跟踪历史记录

Java 使用JPA跟踪历史记录,java,jakarta-ee,jpa,Java,Jakarta Ee,Jpa,我希望通过使用一个新表来存储一个日志,其中记录了在每次更新/插入中进行更改的用户、日期以及任何更改的内容,从而实现对我的一个模型实体的历史记录跟踪/审核 我使用EclipseLink作为我的JPA提供商,但我不想使用它,因为该提供商将来可能会改变。出于同样的原因,我也不能使用 我查看了,但它似乎非常基本,它只允许您存储创建或修改实体的用户和日期,而不允许存储更改 我也知道JPA的prePersist和preUpdate,但具体说明如下: 通常,便携式应用程序的生命周期方法不应 调用EntityM

我希望通过使用一个新表来存储一个日志,其中记录了在每次更新/插入中进行更改的用户、日期以及任何更改的内容,从而实现对我的一个模型实体的历史记录跟踪/审核

我使用EclipseLink作为我的JPA提供商,但我不想使用它,因为该提供商将来可能会改变。出于同样的原因,我也不能使用

我查看了,但它似乎非常基本,它只允许您存储创建或修改实体的用户和日期,而不允许存储更改

我也知道JPA的
prePersist
preUpdate
,但具体说明如下:

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


有没有一种干净、简单、可移植的方法来实现这一点?

我用一个单独的EJB服务手动实现了这一点,该服务的职责是提取历史数据并将其保存为映射。它非常基本,只保存基本数据和关系ID,但对于我的案例来说已经足够了


基本上,我是通过一些反射来检查持久性属性的。

谢谢你,Andrei,我会尝试类似的方法