如何创建事务性的2个编写器-一个JDBC编写器和一个平面文件编写器?例如,当要写入的目录不存在时,我有一个fileNotFoundException。但另一个JDBC编写器已经写入了数据库。我在编写器中尝试了@Transactional,但在压缩器中发生了异常。
fileNotFoundException
@Transactional
e4eetjau1#
您需要使用带有两个项目编写器的CompositeItemWriter。事务将围绕复合编写器,因此如果其中一个委托失败,事务将回滚,另一个委托的操作也将恢复。在您的情况下,写入文件失败将使数据库插入由于事务回滚而被还原。
CompositeItemWriter
1条答案
按热度按时间e4eetjau1#
您需要使用带有两个项目编写器的
CompositeItemWriter
。事务将围绕复合编写器,因此如果其中一个委托失败,事务将回滚,另一个委托的操作也将恢复。在您的情况下,写入文件失败将使数据库插入由于事务回滚而被还原。