本指南讨论从 Hibernate ORM 5.0 版迁移到 5.1 版。有关从早期版本迁移的信息,请参阅任何其他相关的迁移指南。
Oracle12cDialect 将 byte[] 和 Byte[] 映射到 BLOB
以前版本的 Hibernate 将 byte[]
和 Byte[]
映射到 Oracle 的 LONG RAW
数据类型(通过 JDBC LONGVARBINARY 类型)。Oracle 已弃用 LONG RAW
数据类型,可能从 8i 版本开始。因此,决定让 Hibernate 将 byte[]
和 Byte[]
映射到 Oracle 的 BLOB
。
但是,为了向后兼容性,并且不破坏现有应用程序,还决定将此更改限制在 Oracle12cDialect 中。因此,从 5.1 版开始,使用 Oracle12cDialect 并隐式映射 byte[]
和 Byte[]
值的应用程序将开始看到这些值作为 BLOB
数据处理,而不是 LONG RAW
数据。对于希望继续使用 Oracle12cDialect 并继续隐式将 byte[]
和 Byte[]
属性映射到 LONG RAW
的现有应用程序,可以使用一个新的配置设置来启用此功能:hibernate.dialect.oracle.prefer_longvarbinary
,默认值为 false(映射到 BLOB
)。
架构管理工具的更改
更改主要集中在以下方面:
-
统一处理
hbm2ddl.auto
和 Hibernate 的 JPA 架构生成支持。 -
从 SPI 中删除 JDBC 问题,以便于真正替换(用于 OGM)。
这些更改只会对直接使用以下任何类的应用程序产生迁移问题:
-
org.hibernate.tool.hbm2ddl.SchemaExport
-
org.hibernate.tool.hbm2ddl.SchemaUpdate
-
org.hibernate.tool.hbm2ddl.SchemaValidator
-
org.hibernate.tool.schema.spi.SchemaManagementTool
或其任何委托