如何在批量更新期间使Hibernate重用或重新创建临时表

4
Hibernate 通过创建临时表来处理使用 JOINED 继承策略的表的 UPDATE 和 DELETE 操作,以存储已更新或删除记录的 ID(这里有一篇关于此的优秀博客文章:http://in.relation.to/Bloggers/MultitableBulkOperations)。
在一个事务中,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
因此,Oracle 抛出异常:
ERROR spi.SqlExceptionHelper - ORA-00955: name is already used by an existing object
如何告诉 Hibernate 如果表已经存在就不要创建表?
1个回答

1
据我所知,你无法这样做。但是你可以通过自己删除表格或创建自定义批量更新策略来实现你想要的方式。

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