Hibernate Merge函数偶尔会出现主键冲突

时间:2012-07-10 15:18:12

标签: java database hibernate merge indexing

我们在Java应用程序中使用Hibernate。要更新某条信息(及其所有相关的依赖项),我们正在使用Hibernate Merge函数:

HibernateTemplate template = getHibernateTemplate();
template.deleteAll(toBeDeletedObjs);
Object mergedObj = template.merge(obj);

正在更新的主表有5列,第一列(PK)是自动生成的值。

有时候,但并非总是,合并的Insert会出现以下错误:

[插入TABLE(COL1,COL2,COL3,COL4,COL5)值(默认值,?,?,?,?)

DuplicateKeyException: One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "ID" constrains table "TABLE" from having duplicate values for the index key.. SQLCODE=-803, SQLSTATE=23505, DRIVER=3.53.95

我假设“默认”是自动生成的Hibernate值,所以我没有检索前一个对象的ID;这不能成为错误的原因。关于为什么Hibernate有时会在这次合并中失败的任何想法?

0 个答案:

没有答案