2011-10-21 23 views
0

我们的应用程序接收将替换现有记录集的记录列表。每个记录都有一个基于序列的主键和另一个字段上的唯一约束,这是另一个外键上的外键(即备用键)。什么是使用休眠替换一组记录的正确方法

它是这样的:

for each old record 
     delete the old record 
    next 

    for each new record 
     insert new record 
    next 

的问题是,休眠之前删除运行插入,并因此提高违反唯一约束。新纪录与旧纪录有相同的备用关键词。

如果我删除了独特的约束,它工作正常。

什么是正确的方式来做这样的事情?

+0

您是否尝试在发生删除后刷新EntityManager? –

回答

0

两个建议:

  1. 你可以使用合并,这将“替换”这取决于你在数据库中的记录执行情况;
  2. 你可以尝试刷新两个fors之间的所有修改。
+0

法拉盛确实解决了这个问题。谢谢 – DaveRlz

+0

其实,虽然冲洗确实解决了问题,但我决定正确地做事情并合并已更改的记录。非常感谢您的建议! – DaveRlz

相关问题