Hibernate通过自动创建用于存储更新或删除记录的ID的临时表来处理由JOINED继承策略连接的表的UPDATE和DELETE操作(关于此的优秀博客文章在此处: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不要创建表?
答案 0 :(得分:1)
据我所知你不能。但是,您可以自行删除表作为变通方法,或创建自定义批量更新策略,以您希望的方式实现它。