Hibernate ORM 版本 6.2.0.Final
即将发布,以下文章将尝试解释该版本带来的新功能之一。
支持的数据库版本
长期以来,Hibernate 一直保留着支持现已被认为是古老的数据库版本的代码。并不总是清楚应该支持的最小数据库版本是什么,也没有对旧版或最新版的数据库进行持续测试。Hibernate 团队试图尽最大努力支持数据库版本。
在 Hibernate 6.0 中,团队希望做得更好,并通过确保我们承诺支持一组特定的数据库,并将其他数据库的方言移入一个新的模块(称为 hibernate-community-dialects
),来实现这一点。我们为供应商提供了如何将他们的方言移至 hibernate-core
的明确要求。
Hibernate 6.0 中发生的另一件事是,方言现在可以根据数据库版本自动配置,这消除了对各种特定版本方言的需求。由于尝试模拟古老数据库版本中某些功能或 SQL 构造的代码,方言维护仍然存在一些开销。考虑到项目的规模,Hibernate 团队相对较小,我们决定通过明确指定支持的数据库版本来澄清 6.2 版本的数据库支持,同时也指定了支持的版本。这样做将使用户更容易理解 Hibernate 支持什么以及不支持什么。此外,这还允许我们删除一些代码,从而使维护更容易。
截至 6.2 版本,每个方言都将有一个“最低支持版本”,在方言的自配置过程中,它将检查数据库版本是否大于或等于该版本。如果不是,Hibernate 会发出警告。支持更旧数据库版本的方言已移至 hibernate-community-dialects
模块,并且仅以最大努力进行更新。
一般来说,Hibernate 将其数据库版本支持与相应供应商的支持周期相联系。Hibernate 的次要版本可能会停止支持已经不再受支持的数据库版本。Hibernate 6.2 的版本支持变更列表可以在 HHH-15175 上看到。
展望
Hibernate 6.3 将是下一个次要版本,作为其中一部分,将停止支持一些更多的数据库版本。计划中的版本支持变更列表可以在 HHH-15491 上查看。
我希望大家对数据库版本支持过程的了解不会令人震惊。对于少数人来说,这可能是个坏消息,也许这篇文章能帮助您为更持续地升级版本找到合理的理由。