首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ItemProcessor上回滚并仍然调用ItemWriter

在ItemProcessor上回滚并仍然调用ItemWriter
EN

Stack Overflow用户
提问于 2019-12-04 21:33:42
回答 1查看 131关注 0票数 0

我有一个写入数据库的ItemProcessor和一个写入文件的ItemWriter。我希望能够在ItemProcessor中回滚,并且仍然能够通过ItemWriter。更确切地说,我的逻辑获取从FlatFileItemReader接收的对象并使用它对数据库进行一些维护,如果每件事情都很好--在对象中设置了一些属性,如果我面临任何数据库问题,我会捕获异常,并在对象中设置一些其他属性。处理后的对象将通过FlatFileItemWriter写入文件。我试图扩展FlatFileItemWriter,以便在编写回滚之后抛出异常,但这样做会阻止事情转到文件中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-04 23:02:05

我发现FlatFileItemWriter正在与TransactionAwareBufferedWriter,一起工作,因此无法回滚事务并仍然写入磁盘上的文件,因为只有当事务完成时,TransactionAwareBufferedWriter才会刷新到磁盘。因此,我确实实现了一个纯Writer,它实现了ItemWriter接口,我只是在写入文件、刷新和关闭流之后抛出一个异常,它正在工作,它会回滚事务,同时它会写入磁盘上的文件。

我暂时不会接受我的回答,看是否有人能想出一个更好的方法,也许不会失去拥有FlatFileItemWriter.的好处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59184959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档