繁体   English   中英

Spring基于订单对象批量写入多个表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM