2015-04-08 37 views
0

在Spring批處理作業中,我需要在INSERT之前編寫DELETE,以避免已有鍵上的主鍵違例。春季批次刪除之前INSERT的最佳做法?

關於這種需求的最佳實踐是什麼? 我應該如何以及在哪裏實施此預先刪除?

Thx提前爲您的建議。 :-)

+0

如何使用更新? –

回答

1

我相信你從實際的表中刪除,因爲如果你刪除的內容記錄,並插入失敗之前應該插入一些temp table的數據?

數據將會丟失或者使用spring transactions來避免此故障,萬一發生了不期望的情況,它會回滾整個事務。

這就像我們爲safe file writing所做的一樣。

+0

Thx Pankaj爲您的建議。請問「安全文件寫入」是什麼意思? – SylvainR

+0

它基本上是一個概念,我們可以覆蓋硬盤上的現有文件,如果我們正在寫入文件並遇到'磁盤空間不足',操作將不會成功,並且可能是該文件中的現有數據獲取損壞。這就是爲什麼tmp/rename這個概念在文件編寫時更好的選擇 如果答案有道理,請接受我的答案。 –

0

使用tasklet刪除數據。爲了讓tasklet工作,你可能需要注入jdbcTemplate或類似的東西來執行tasklet中的db操作。 我也在互聯網上重新討論了這個話題,這是我迄今爲止得到的最好的解決方案。