我使用spring-batch进行数据导入。但是在writer()步骤中,我不想持久化处理的项,而是从数据库中删除它们(通过id)。
问:像ItemWriters一样的JpaItemWriter只是用于持久化项目。有什么作家我可以把CrudRepository传递给repository.delete(id)吗?
发布于 2016-02-18 17:30:15
JpaItemWriter不支持删除。However...we确实有一个可以配置调用的方法的RepositoryItemWriter。因此,在您的示例中,您可以将其与Spring中的JpaRepository结合使用,并将该方法配置为一个delete。这将删除传入的项(如果要删除by id,则需要创建一个接收项目并返回id的处理器)。您可以在这里阅读更多关于RepositoryItemWriter的信息:https://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/data/RepositoryItemWriter.html
作为另一种选择,您可以子类JpaItemWriter并重写doWrite方法来调用entityManager.remove,而不是它当前所做的entityManager.merge .
https://stackoverflow.com/questions/35406503
复制相似问题