迁移到Hibernate 5.x

3

我正在将我的应用程序从Hibernate 3迁移到Hibernate 5。我们使用DatabaseMetadata类来获取TableMetadata。因此,使用TableMetadata对象获取数据库表列信息,如列大小、类型等。在Hibernate 5中,似乎DatabaseMetadata类被弃用(删除!)。在Hibernate 5环境中是否有任何替代DatabaseMetadata类的方法?否则,如何获取TableMetadata


这里列出了已弃用的类和方法及其替代方案。https://docs.jboss.org/hibernate/orm/4.3/javadocs/deprecated-list.html - Alan Hay
Alan,它已从5.x中删除。它在4.x中可用。 - Sydubabu
1个回答

5
在5.0版本中,我们采用了一种新的架构工具方法,因此已经移除了DatabaseMetadata。DatabaseMetadata代表了底层数据库中现有的目录/模式信息。在5.0版本中,这个作用由org.hibernate.tool.schema.extract.spi.DatabaseInformation来完成。它(以及之前的DatabaseMetadata)真正只被支持用于架构验证和架构迁移(更新)代码。它被传递到那些调用中。我猜你使用它的方式不同。这并不一定得到支持,但如果您想继续使用,只需实例化一个org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl实例即可。

1
嗨@Sydubabu,我正在拼命尝试将我的DB脚本集成到Hibernate的模式更新中。您能否举个例子,说明如何使用org.hibernate.tool.schema.extract.spi.DatabaseInformation?我来自Hibernate 3.2.3-ga。现在要升级到5.1.0-Final。 - retromuz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接