是否可以在特定条件下混合使用 hibernate-envers 版本?

Is it possible to mix hibernate-envers versions given certain conditions?

我有一个使用 hibernate 4.3.11 的大型系统 (A)。我们想使用 hibernate-envers 在一些表上引入审计。

但是我们想在使用休眠 5 的不同系统 (B) 上使用审计日志。

鉴于系统 B 仅从共享数据库读取,在这种情况下是否可以混合休眠版本?

考虑到 Envers 在 4.3.x 和 5.x 发布流之间引入的变化,您很有可能可以用最少的努力完成您的要求。

但是我确实需要让您知道 5.x 发布流中的一些错误修复可能需要一些可能不兼容的小架构更改,因此请务必进行测试,因为可能存在某些情况在您的映射中,您可能无法执行此操作。

我理解为什么您的团队可能选择了这条道路,但我确实想敦促您考虑其他方法来避免共享数据库(如果可以的话)。

最终,您可能会遇到两个 Hibernate/Envers 版本不兼容或遗留功能切换不再存在的情况,您只能使用旧版本,没有明确的升级路径,没有重大的基础架构更改。

使用某种类型的事件源、触发器、数据复制、消息队列等来保持两个异构系统的同步可以在这方面取得进展 space 允许最大的灵活性,最小的耦合,我认为是最少的技术债务。