私は春のバッチで初心者で、私は使用する必要がある読者のためのパターンを決定することができません。クラスWSRequestClass
を作成してSOAP Webサービスに送信する必要があります。 WSRequestClass
を作成する春バッチ複合カスタムItemReader
public class WSRequestClass{
private String data1;
private String data2;
private String data3;
private String data4;
private List<ClassB> dataList;
}
が必要である:表Aから
- 読む
data1
とdata2
- 読む
data3
とテーブルBからdata4
List<ClassB>
が複雑から作成されなければなりませんフロー。まず、テーブルCのクエリからデータを取得しますが、このクエリの結果はList<ClassA>
です。List<ClassA>
の各項目を処理し、ClassB
に変換する必要があります。属性の一部はClassA
から計算されます。 (チャンクパターンですが、ライターはありません)。public class ClassA { private Date date; private BigDecimal amount1; private BigDecimal amount2; private String data; //getters & setters ... } public class ClassB { private Date date; private BigDecimal amount1; private BigDecimal amount2; private BigDecimal amount3; private BigDecimal amount4; private String data1; private String data2; //getters & setters ... }
私は最も簡単なチャンクパターンとタスクレットのための複数の例を発見したが、どれも、この構造を、以下ません。このジョブでは、Java構成とJdbcTemplateを使用してクエリを実行します。それが完了したWebサービスの呼び出しの開発、私の唯一の問題は、複数のテーブルから読み取り、効率的にリストを読み取って、ClassB
に各項目を変換し、WsRequestClass
に設定する必要があるということです。
共通のItemReader
が私には役に立たないので、私はパターンを使用して案内してください。私は自分が望むことを可能にするカスタムリーダーをどのように実装するのか分かりません。
ありがとうございました!リンクはパターンを明確にするのに非常に役立ちました!私が遭遇する唯一の障害は、 'WSRequestClass'の' dataList'を取得するためにDAOを呼び出すと、DAOの戻り値は 'ClassA'のリストです(これはDAOであるため変更できませんDAOを呼び出して 'List'を 'List 'に変換する 'ServiceImpl'を作成しますが、これはFor文でリスト全体をループすることを意味します。春のバッチを利用してこれを行うためのより良い方法はありますか? –
Mai