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 如果表已经存在就不要创建表?
在一个事务中,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 如果表已经存在就不要创建表?