Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除ItemWriter中的对象?_Java_Spring_Spring Batch - Fatal编程技术网

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中有一个复制粘贴错误。