使用Hibernate替换一组记录的正确方法是什么

时间:2011-10-21 14:09:51

标签: java hibernate jpa

我们的应用会收到要替换现有记录集的记录列表。每条记录都有一个基于序列的主键,以及另一个字段的唯一约束,这是另一个字段的外键(即备用键)。

它是这样的:

   for each old record
      delete the old record
   next

   for each new record
      insert new record
   next

问题是Hibernate在删除之前运行插入,因此引发了唯一的约束违规。新记录具有与旧记录相同的备用密钥。

如果我删除了唯一约束,它就可以正常工作。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

两个建议:

  1. 你可以使用merge,这将根据你的实现“替换”数据库中的记录;
  2. 你可以尝试清除两个人之间的所有修改。