今天我发布了 Hibernate ORM 5.0(5.0.0.CR4)的第四个候选版本。目的是完全更改一些设置的默认值。这允许一些额外的修复和额外的文档工作得以实现。
默认隐式命名策略
默认隐式命名策略(hibernate.implicit_naming_strategy
)已更改为符合 JPA 的一个。此外,我还为 Hibernate 提供的实现添加了一些简写名称。
-
"default" → org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl
-
"jpa" → org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl
-
"legacy-jpa" → org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
-
"legacy-hbm" → org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl
-
"component-path" → org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
之前的默认值为 "legacy-jpa"。之前使用默认命名策略并希望继续使用该隐式命名策略的现有应用程序应在其配置设置中指定 hibernate.implicit_naming_strategy=legacy-jpa
。或者,它们可以调用 MetadataBuilder#setImplicitNamingStrategy(ImplicitNamingStrategyLegacyJpaImpl.INSTANCE)
。
标识符生成器映射
在 3.6 中,我开发了一套新的标识符生成器策略,旨在基于 JPA 对 @SequenceGenerator
和 @TableGenerator
的期望实现数据库可移植性。在 3.6 和现在之间,默认值一直是继续使用传统的生成器策略,但我们添加了一个设置(hibernate.id.new_generator_mappings
),允许应用程序请求使用较新的策略。此设置的默认值一直是 false。现在默认值为 true。
现有应用程序更新到 CR4 然后最终版本,如果在使用标识符生成器策略选择方面遇到问题,应尝试将其设置为 false,以继续使用传统映射。
关键字自动引号
这是 5.0 中的一个新功能,但之前默认值是自动引号任何被认为是底层数据库中关键字的 SQL 标识符。该功能默认已禁用。
希望使用此功能的应用程序应在配置设置中明确启用它,方法是在其中指定 hibernate.auto_quote_keyword=true
。
如何获取
此外,还包括了许多其他改进和错误修复。有关更改的完整列表,请参阅 https://hibernate.atlassian.net/projects/HHH/versions/20752。
如往常一样,有关获取发布版本的信息,请参阅 https://hibernate.com.cn/orm/downloads/。