[英]Spring batch writing to multiple tables based on order object
我正在使用order xml,并使用spring batch将它们转换为order对象。 订单对象的结构如下所示:
public class Order{
prop1
prop2
---
propn
List<Item> items;
List<Shipping> shipping;
List<Billing> billing;
----
}
现在, prop1 - popn
将进入订单表,但项目,运输和开票信息将进入不同的表,为简单起见,我们假设它们是一对多的关系。 目前,我正在解析xml并填充订单bean,并使用JdbcBatchItemWriter
将日期推JdbcBatchItemWriter
仅订单表。 在文档中,我看到了compositeWriter
但是没有看到任何好的示例。我确信有人已经实现了这种解决方案,所以想对此有所了解。 如果我通过一个简单的示例获得一些有关如何实现此目标的信息,那将是很好的。
ComposedItemWriter
将列表中的每个项目传递给ItemWriter
,并将其传递到委托ItemWriter
实现的每个列表。 因此,您可以按以下方式配置它(每个writer*()
方法都将一个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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.