今天,我们发布了 Hibernate ORM 6.1 的新维护版本:6.1.5.Final。
新特性
此版本引入了一些改进、错误修复和一系列显著的性能提升。
性能
Red Hat 性能团队已确定了一种特定的代码模式,该模式会在大型多核服务器上引发严重的性能惩罚。许多库都受到影响,包括 Hibernate ORM。
虽然工程团队的主要目标将是尝试解决跟踪为 JDK-8180450 的 JVM 问题,但我们已经开始包括一些缓解补丁,这样我们的用户就不必等待多年。
这项工作还处于早期阶段,我们可能会继续跟进额外的相关改进,但如果你在运行 HotSpot JVM、拥有多个核心并使用字节码增强,你应该已经体验到了此版本的 CPU 效率提升。
早期测试结果非常令人鼓舞!
如果你对此感兴趣,我们可以在 Quarkus Insights 第 107 集中 对问题进行了广泛讨论。
要确定您的代码或其他库是否受到影响,请使用 类型污染代理。
Hibernate ORM 中的补丁跟踪为 HHH-15616 - 未来版本中预计还会有更多类似的好东西。
注意:这个问题已经存在大约 20 年:我们并没有遇到回归,我更愿意说这是一个重要的发现,并带来了极好的好消息,前提是你关心你的服务器和/或环境成本。
多列反向一对一的虚拟合成属性
另一个补丁由Gavin提供,解决了多个与多对一映射相关的问题。
DB2别名
Hibernate模式验证现在支持DB2的表别名,要启用此功能,需要将hibernate.synonyms
配置属性设置为true
(参见HHH-15585)
实体图和继承
我们修复了一个阻止对单表继承的关联进行懒加载的bug(参见HHH-15622)