Hibernate中的全局临时表

6
在hibernate的hbm2ddl.auto更新模式中,它会创建类似下面这样的全局临时表:
Hibernate: create global temporary table HT_PASSENGER_VEHICLE (VEHICLE_ID number(10,0) not null) on commit delete rows
Hibernate: create global temporary table HT_TRANSPORTATION_VEHICLE (VEHICLE_ID number(10,0) not null) on commit delete rows
Hibernate: create global temporary table HT_VEHICLE (VEHICLE_ID number(10,0) not null) on commit delete rows

这些表是什么?它们与缓存机制有关吗?为什么Hibernate会创建这些表?

4
这里有一篇由 Steve Ebersole 解释的文章(链接为http://in.relation.to/2005/07/20/multitable-bulk-operations/)。 - Tobias Liefke
嗨@TobiasLiefke,谢谢你提供链接,但是链接已经失效了。 - jumping_monkey
不是真的关闭了所有协议,只是关闭了“http”协议 - 只需将“http”替换为“https”即可。 - Tobias Liefke
1个回答

1
Hibernate使用这些表进行多表批量操作。
请参见: https://in.relation.to/2005/07/20/multitable-bulk-operations/ 更新和删除语句都很难处理涉及跨越多个表的单个实体(不包括关联),这可能是以下情况之一:
- 使用进行继承 - 使用进行继承 - 使用构造进行实体映射

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