5.8.4. 从 Hibernate ORM 5.0 迁移到 Hibernate ORM 5.1
JBoss EAP 7.1 包括 Hibernate ORM 5.1。本节重点介绍从 Hibernate ORM 版本 5.0 迁移到版本 5.1 时需要的差异和更改。
Hibernate ORM 5.1 功能
此 Hibernate 发行版本包括许多性能改进和漏洞修复,详情见 JBoss EAP 7.1.0 发行注记中的 Hibernate ORM 5.1 功能。有关 Hibernate ORM 5.0 和 Hibernate ORM 5.1 实施更改的更多信息,请参阅 Hibernate ORM 5.1 迁移指南。
架构管理工具更改
JBoss EAP 7 中的模式管理工具变化
Hibernate ORM 5.1 中的模式管理工具更改主要侧重于以下区域:
-
统一处理
hbm2ddl.auto和 Hibernate 的 JPA模式生成支持. - 从 SPI 中删除 JDBC 顾虑以促进 Hibernate OGM 的真正替代品,这是为 NoSQL 数据存储提供 Java Persistence(JPA)支持的持久引擎。
模式管理工具更改只能是直接使用以下任一类的应用程序的迁移问题:
-
org.hibernate.tool.hbm2ddl.SchemaExport -
org.hibernate.tool.hbm2ddl.SchemaUpdate -
org.hibernate.tool.hbm2ddl.SchemaValidator -
org.hibernate.tool.schema.spi.SchemaManagementTool或其任何代表
JBoss EAP 7.1 中的模式管理工具变化
Hibernate ORM 5.1.10 包含在 JBoss EAP 7.1 中,引入了检索数据库表的新策略,该表提高了 SchemaMigrator 和 SchemaValidator 性能。此策略执行单个 java.sql.DatabaseMetaData#getTables(String, String, String, String[]) 调用来确定每个 javax.persistence.Entity 是否具有映射的数据库表。这是默认策略,它使用 hibernate.hbm2ddl.jdbc_metadata_extraction_strategy=grouped 属性设置。此策略可能需要提供 hibernate.default_schema 和/或 hibernate.default_catalog。
要使用旧策略( 针对每个 调用,请使用 javax.persistence.Entity 执行 java.sql.DatabaseMetaData#getTables_metadata_ String, String[])hibernate.hbm2ddl.jdbc_metadata_extraction_strategy=individually 属性设置。