我正在使用订单xml并使用spring批处理将它们转换为订单对象。订单对象的结构如下所示:
public class Order{
prop1
prop2
---
propn
List<Item> items;
List<Shipping> shipping;
List<Billing> billing;
----
}
现在prop1 - popn
将转到订购表,但是商品,运费和结算信息将转到不同的表格,为简单起见,我们假设它们是一对多的关系。目前,我正在解析xml并填充订单bean并使用JdbcBatchItemWriter
将某个日期推送到订购表。在文档中,我看到compositeWriter
,但没有看到任何好的例子。我确定有人已经实现了这种解决方案,所以想要对此有所了解。如果我通过一个简单的例子获得有关如何实现这一目标的信息,那就太棒了。
答案 0 :(得分:1)
ComposedItemWriter
传递传递给ItemWriter
的列表中的每个项目,并将其传递给每个委托ItemWriter
实施列表。因此,您可以按如下方式对其进行配置(每个writer*()
方法都指向您需要写入的表的编写器):
@Bean
public CompositeItemWriter<Order> orderCompositeItemWriter() {
List<ItemWriter<Order>> delegates = new ArrayList<Order>();
delegates.add(writer1());
delegates.add(writer2());
delegates.add(writer3());
return new CompositeItemWriterBuilder<Order>()
.delegates(delegates)
.build();
}