簡體   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