我们刚刚发布了Hibernate ORM 5.3.2.Final版本,其中包含了许多错误修复和改进。

在这个开发周期中,我们收到了一些不错的贡献,因此要向我们的贡献者表示衷心的感谢。此外,现在越来越多的用户报告了问题,并提供了一个自包含的测试用例,这非常受欢迎。

这是Hibernate ORM 5.3.x用户推荐升级的版本,我们希望越来越多的人会从5.2迁移到这个闪亮的新版本。

新功能

错误修复

我们修复了很多问题,不仅包括从5.2回归的问题,所以你应该试一试这个版本。

启动错误现在正确报告

在5.3版本中,当你的持久化单元配置错误时,你可能会收到一个非常神秘的错误消息,甚至没有任何错误。

这已经在HHH-12247中修复,你现在会收到一个全面的错误消息,这将帮助你了解出了什么问题。

缓存行为变更

自动创建缓存

在5.3版本中,当你的实体/集合/查询缓存之一不可用,Hibernate ORM在启动时会失败:ORM不再创建缓存,而是依赖于你明确声明所有必要的缓存。这个变更是因为,如果我们不经过合理的配置就自动创建缓存,你的缓存可能会配置得很糟糕(例如没有大小限制,没有过期时间等),这最终可能导致不希望的行为(即OOM问题)。

虽然配置你的缓存当然是一件好事,但我们决定放宽这个限制,并且从5.3.2版本开始,Hibernate ORM将对所有不存在的缓存发出警告,并创建它们。当然,我们仍然强烈建议你正确配置你的缓存(要么在缓存实现中定义合理的默认配置,要么明确声明每个缓存)。

这应该可以提高ORM的可用性,同时保持足够的安全性。您可以通过使用hibernate.javax.cache.missing_cache_strategy属性来配置这种行为。有关更多信息,请参阅我们的文档

查询缓存区域名称更改

简而言之,在5.3.2中,查询缓存区域的名称已经更改:它们现在是稳定的短名称(在此之前,它们与内部类名相关联,因此当我们对事物进行重构时可能会发生变化)。

新的名称如下

  • default-query-results-region 用于查询结果缓存;

  • default-update-timestamps-region 用于表更新时间戳缓存。

请注意,如果您还没有使用这些新名称配置您的缓存,我们仍然会尝试使用旧名称的缓存,因此您不需要进行任何更改。

完整更改日志

完整的更改列表请在此处查看:此处(或者,对于没有Hibernate Jira账户的人,请在此处查看:此处)。

获取5.3.2.Final

所有详细信息均可在hibernate.org的专用页面上找到并保持最新。

反馈、问题、想法?

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


回到顶部