在Spring Batch作业中,我需要在INSERT之前编写DELETE代码,以避免对现有密钥进行主键冲突。
有关此需求的最佳做法是什么? 我应该如何以及在何处实施此预先删除的删除?
提前告知你的建议。 : - )答案 0 :(得分:1)
我相信您应该在将数据从实际表中删除之前将其插入某些temp table
中,因为如果删除记录并插入失败会怎样?
数据将丢失或使用spring transactions
来避免此失败,如果出现意外情况,则会回滚整个事务。
这就像我们对safe file writing
所做的一样。
答案 1 :(得分:0)
使用tasklet删除数据。要使tasklet工作,您可能必须注入jdbcTemplate或类似的来从tasklet执行Db操作。 我也在互联网上研究了这个话题,这是我到现在为止所做的最好的解决方案。