2011-10-21 56 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

相關問題