Java 如何删除ItemWriter中的对象?
我正在使用Java 如何删除ItemWriter中的对象?,java,spring,spring-batch,Java,Spring,Spring Batch,我正在使用spring批处理进行数据导入。但是在writer()步骤中,我不想持久化已处理的项目,而是从数据库中删除它们(按id) 问题:像JpaItemWriter这样的itemswriter只用于持久化项目。是否有任何编写器,例如我可以传递crudepository并调用存储库。delete(id)?JpaItemWriter不支持删除。但是…我们有一个RepositoryItemWriter,您可以配置调用的方法。因此,在您的例子中,您可以将其与Spring数据中的JpaRepositor
spring批处理
进行数据导入。但是在writer()
步骤中,我不想持久化已处理的项目,而是从数据库中删除它们(按id)
问题:像
JpaItemWriter
这样的itemswriter
只用于持久化项目。是否有任何编写器,例如我可以传递crudepository
并调用存储库。delete(id)
?JpaItemWriter
不支持删除。但是…我们有一个RepositoryItemWriter
,您可以配置调用的方法。因此,在您的例子中,您可以将其与Spring数据中的JpaRepository
结合使用,并将该方法配置为delete调用。这将删除传入的项目(如果要按id删除,则需要创建一个接收项目并返回id的处理器)。您可以在此处阅读有关RepositoryItemWriter的更多信息:
或者,您可以将
JpaItemWriter
子类化,并重写doWrite
方法来调用entityManager.remove
,而不是它当前执行的entityManager.merge
我不这么认为;但是写一个自定义的应该很容易,可能不是这里的正确位置,但是我认为在RepositoryItemWriter的类描述中,您的javadoc中有一个复制粘贴错误。