春季批次DELETE BEFORE INSERT最佳实践?

时间:2015-04-08 08:59:18

标签: spring-batch best-fit

在Spring Batch作业中,我需要在INSERT之前编写DELETE代码,以避免对现有密钥进行主键冲突。

有关此需求的最佳做法是什么? 我应该如何以及在何处实施此预先删除的删除?

提前告知你的建议。 : - )

2 个答案:

答案 0 :(得分:1)

我相信您应该在将数据从实际表中删除之前将其插入某些temp table中,因为如果删除记录并插入失败会怎样?

数据将丢失或使用spring transactions来避免此失败,如果出现意外情况,则会回滚整个事务。

这就像我们对safe file writing所做的一样。

答案 1 :(得分:0)

使用tasklet删除数据。要使tasklet工作,您可能必须注入jdbcTemplate或类似的来从tasklet执行Db操作。 我也在互联网上研究了这个话题,这是我到现在为止所做的最好的解决方案。