今天,我们发布了 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 本身 已经重新工作 这个棘手区域,改进了代码和可能因用户错误而产生的错误信息。

这一系列更改可能解决了一系列开放性问题,我们还需要验证有多少被解决。

多列反向一对一的虚拟合成属性

另一个补丁由Gavin提供,解决了多个与多对一映射相关的问题。

DB2别名

Hibernate模式验证现在支持DB2的表别名,要启用此功能,需要将hibernate.synonyms配置属性设置为true(参见HHH-15585

Hibernate Gradle插件

我们修复了影响Gradle插件的两个bug

  • 一个导致尝试增强实体时失败的bug已被修复(参见HHH-15597

  • 一个防止执行名称由三部分或更多部分组成的任务(例如compileThreePartNameJava)的bug已被修复(参见HHH-15558

这些修复对于Spring Native很重要。

实体图和继承

我们修复了一个阻止对单表继承的关联进行懒加载的bug(参见HHH-15622

结论

有关更多详细信息,请参阅

反馈、问题、想法?

要取得联系,请使用常规渠道


回到顶部