如何将现有的自定义历史记录表迁移到envers

时间:2016-04-04 05:55:55

标签: java hibernate auditing

由于历史原因,我们使用envers以及自定义审核机制。有些表由envers审核,但是一个表及其大多数相关表都是手动审核的。

我们的自定义解决方案会创建对象图的副本,添加时间戳并将*历史记录对象保存到相应的表中。

假设我们有一个实体A,它引用了一组实体B,它引用了一组实体C。 如果我们检测到A的更新或插入,我们会创建一个副本A_History,该副本引用引用实体B_History集合的实体C_History的集合。引用实体的所有属性都将复制到相应的*历史记录对象中,并且完整图形将保留。实际上,我们正在处理12个表来表示对象图。

为了摆脱旧代码并统一行为,我们希望将所有审计迁移到envers。但是我们当然希望保留已有的历史,即使它不是由envers创建的。

如果在现有项目中引入了envers,我找到了一些创建初始修订信息的指南。但我没有找到任何帮助来迁移未由envers管理的现有修订信息。

除了编写原始sql语句之外,还有办法进行迁移吗?

1 个答案:

答案 0 :(得分:0)

目前不支持 import 类型功能将外部审计信息加载到Envers审计表结构中,因此SQL语句将是目前播种Envers审计历史记录的唯一选择。 / p>