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