休眠 HT_ 临时表 ON JOIN 继承,从休眠 3.4.0.GA 迁移到 5.1

我正在尝试将应用程序从Hibernate 3.4.0.GA 迁移到Hibernate 5.1,在完成对java代码的必要更改后,当我部署应用程序时,我正在观察Hibernate如何尝试创建HT_表(全局临时表),每个表@Inheritance注释的实体。

在Google上搜索,我找到了创建表格的原因。

但在我的情况下,我们不允许更改de数据库来添加新表。

我的继承模型只有一个继承级别及其简单的示例

有没有人知道分层表结构的替代表示形式,我可以用来避免创建HT_表,或者一些Hibernate配置来存档相同的目的?

我可以更改实体或休眠配置上的继承层次结构。如果部署的其余部分未阻塞,我还可以假设由于未创建表而导致的部署异常。

提前感谢您。

更新1:来自Hibernate官方论坛的新信息。

更新2:错误已修复

更新3:一篇博客文章,解释了与该问题相关的不同批量策略


答案 1

正如在此链接上的更新中一样,来自Hibernate官方论坛的更多信息,以及可能的解决方案。

更新:与解决方案链接


答案 2

如果您将 Oracle 数据库与 Spring 一起使用,并且不确定在何处为休眠定义属性,则可以执行以下操作。加

spring.jpa.properties.hibernate.hql.bulk_id_strategy: org.hibernate.hql.spi.id.inline.InlineIdsInClauseBulkIdStrategy

在 application.yml 文件中,从资源文件夹。


推荐