由于历史原因,我们使用envers以及自定义审计机制 . 有些表由envers审计,但是一个表及其大多数从属表都是手动审计的 .
我们的自定义解决方案创建了对象图的副本,添加了时间戳并将*历史对象保存到相应的表中 .
假设我们有一个实体 A
,它引用了一组实体 B
,它引用了一组实体 C
. 如果我们检测到 A
的更新或插入,我们创建一个副本 A_History
,它引用一组实体 B_History
,它引用一组实体 C_History
. 引用实体的所有属性都将复制到相应的*历史记录对象中,并且将保留完整的图形 . 实际上,我们正在处理12个表来表示对象图 .
为了摆脱旧代码并统一行为,我们希望将所有审计迁移到envers . 但是我们当然希望保留已有的历史,即使它不是由envers创建的 .
如果在现有项目中引入了envers,我找到了一些创建初始修订信息的指南 . 但我没有找到任何帮助来迁移不由envers管理的现有修订信息 .
除了编写原始sql语句之外,还有办法进行迁移吗?
1 回答
目前不支持导入类型功能将外部审计信息加载到Envers审计表结构中,因此SQL语句将是目前播种Envers审计历史记录的唯一选择 .