2015-04-08 35 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操作。 我也在互联网上重新讨论了这个话题,这是我迄今为止得到的最好的解决方案。