Java 如何在批量更新期间使Hibernate重用或重新创建临时表
Hibernate通过自动创建临时表来存储已更新或已删除记录的ID,从而处理由联接继承策略联接的表上的更新和删除操作(这里有一篇关于这方面的优秀博文:) 在一个事务中,Hibernate创建一个临时表(名为HT_mytable),插入记录ID,用存储的ID从mytable中删除条目,并清除HT_mytable 但是,在我的例子中,它尝试在每次更新时创建表,而不首先检查表是否存在,方法是执行: Hibernate: create global temporary table HT_child (record_id number(10,0) not null) on commit delete rows Hibernate:创建全局临时表HT_子级(记录id号(10,0)不为空) 在提交时删除行 所以Oracle抛出了一个异常: ERROR spi.SqlExceptionHelper - ORA-00955: name is already used by an existing object 错误spi.SqlExceptionHelper-ORA-00955:名称已被现有对象使用Java 如何在批量更新期间使Hibernate重用或重新创建临时表,java,oracle,hibernate,jpa,orm,Java,Oracle,Hibernate,Jpa,Orm,Hibernate通过自动创建临时表来存储已更新或已删除记录的ID,从而处理由联接继承策略联接的表上的更新和删除操作(这里有一篇关于这方面的优秀博文:) 在一个事务中,Hibernate创建一个临时表(名为HT_mytable),插入记录ID,用存储的ID从mytable中删除条目,并清除HT_mytable 但是,在我的例子中,它尝试在每次更新时创建表,而不首先检查表是否存在,方法是执行: Hibernate: create global temporary table HT_child (r
如果表已经存在,如何告诉Hibernate不要创建它?据我所知,您不能。但是,您可以自己删除该表作为解决方法,或者创建一个自定义批量更新策略,以您希望的方式实现它