我有一些使用join-inheritance的实体,正在对它们执行批量操作。正如在Multi-table Bulk Operations中解释的那样,Hibernate使用临时表来执行批量操作。
据我所知,临时表中的数据是临时的(在事务或会话结束时删除),但是表本身是永久的。我看到的是,每次执行此类查询时,Hibernate都会尝试创建临时表。在我的情况下,这超过了每小时35,000次。创建表语句显然每次都失败,因为已经存在具有该名称的表。这真的很不必要,可能会损害性能,而且数据库管理员也不高兴...
Hibernate是否有记住已经创建临时表的方法?
如果没有,是否有任何解决方法?我唯一的想法是改用单表继承,以完全避免使用临时表。
Hibernate版本为4.2.8,DB为Oracle 11g。
据我所知,临时表中的数据是临时的(在事务或会话结束时删除),但是表本身是永久的。我看到的是,每次执行此类查询时,Hibernate都会尝试创建临时表。在我的情况下,这超过了每小时35,000次。创建表语句显然每次都失败,因为已经存在具有该名称的表。这真的很不必要,可能会损害性能,而且数据库管理员也不高兴...
Hibernate是否有记住已经创建临时表的方法?
如果没有,是否有任何解决方法?我唯一的想法是改用单表继承,以完全避免使用临时表。
Hibernate版本为4.2.8,DB为Oracle 11g。
创建表语句显然每次都失败
时,当您将日志级别设置为debug
时,是否会得到任何日志?记录类似于尝试导出时发生错误...
- Amogh