避免在 Hibernate 5.1.0 中创建全局临时表
Posted
技术标签:
【中文标题】避免在 Hibernate 5.1.0 中创建全局临时表【英文标题】:Avoid Global Temporary Table creation in Hibernate 5.1.0 【发布时间】:2017-01-10 09:59:03 【问题描述】:Hibernate 创建以 HT_ 开头的全局临时表名称,用于批量更新和删除。
我们不应该/不允许从应用程序创建任何表。
我们如何关闭休眠的表全局临时创建?
【问题讨论】:
Hibernate HT_ Temporary Tables ON JOINED inheritance, Migration from Hibernate 3.4.0.GA To 5.1的可能重复 【参考方案1】:hibernate 定义了几个选项,您可以根据您的数据库功能进行选择 1-InlineIdsInClauseBulkIdStrategy 2-InlineIdsSubSelectValueListBulkIdStrategy 3-InlineIdsOrClauseBulkIdStrategy 4-CteValuesListBulkIdStrategy
使用这些策略的示例
<property name="hibernate.hql.bulk_id_strategy"
value="org.hibernate.hql.spi.id.inline.InlineIdsInClauseBulkIdStrategy"
/>
有用的链接:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#batch
【讨论】:
这适用于 hibernate 5.2 以后的版本,但遗憾的是这不适用于 5.1 版本,因此您需要升级到更新的版本。以上是关于避免在 Hibernate 5.1.0 中创建全局临时表的主要内容,如果未能解决你的问题,请参考以下文章