有可能在特定条件下混合hibernate环境版本吗



我有一个使用hibernate 4.3.11的大型系统(a)。我们想介绍使用hibernate环境对一些表进行审计。

但是,我们希望在使用hibernate 5的另一个系统(B)上使用审核日志。

假设系统B只从共享数据库中读取,在这种情况下,是否可以混合hibernate版本?

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

然而,我确实需要让您意识到,5.x版本流中的一些错误修复可能需要一些可能不兼容的小架构更改,因此请务必进行测试,因为根据您的映射,在某些情况下,您可能无法执行此操作。

我理解为什么您的团队可能选择了这条路,但我想敦促您考虑其他方法,尽可能避免共享数据库。

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

使用某种类型的事件源、触发器、数据复制、消息队列等来保持两个异构系统的同步,可以在这个空间中实现最大的灵活性、最少的耦合,我认为这是最少的技术债务。

最新更新