我想通过使用一个新表来存储日志,其中包含进行更改的用户、日期以及每次更新/插入中发生的任何更改,从而为我的模型实体之一实现历史记录跟踪/审核。
我使用 EclipseLink 作为我的 JPA 提供程序,但我不想使用它历史政策 http://wiki.eclipse.org/Configuring_a_Descriptor_%28ELUG%29#Configuring_a_History_Policy因为提供商将来可能会发生变化。我也无法使用休眠恩弗斯 http://www.jboss.org/envers为了同样的原因。
我调查了Spring Data 提供的审计支持 http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/jpa.repositories.html#jpa.auditing,但它似乎非常基本,它只允许您存储创建或修改实体和日期的用户,而不是更改。
我也知道JPA的prePersist
and preUpdate
,但规范说:
一般来说,可移植应用程序的生命周期方法不应该
调用EntityManager或Query操作,访问其他实体
实例,或修改同一持久性内的关系
语境。
有没有一种干净、简单、便携的方法来实现这一点?
我使用单独的 EJB 服务手动完成此操作,该服务的职责是提取历史数据并将其保存为 MAP。它非常简陋,仅保存基本数据和关系 ID,但这对于我的情况来说已经足够了。
基本上我是通过一些反思来检查持久性属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)