57.2.8. 8.OneToMany


アノテーション @OneToMany の目的は、POJO クラスを定義する List<?> フィールド、または反復グループが含まれるレコードから機能できるようにすることです

注記

OneToMany
の制限では、多くのバインドに対する
制限では、階層の複数のレベルで定義された繰り返しを処理することはできません。

以下の場合、関係 OneToMany のみの WORKS です。

  • 反復グループを含む FIX メッセージの読み取り(タグ/キーのグループ=)
  • 繰り返しデータを使用した CSV の生成
Expand
アノテーション名レコードの種類レベル

OneToMany

all

プロパティー

Expand
パラメーター名タイプ必須/任意デフォルト値Info

mappedTo

文字列

  

Class> の List<Type のタイプに関連付けられたクラス名

ケース 1: 繰り返しデータを使用した CSV の生成

必要な CSV 出力は次のとおりです。

Claus,Ibsen,Camel in Action 1,2010,35
Claus,Ibsen,Camel in Action 2,2012,35
Claus,Ibsen,Camel in Action 3,2013,35
Claus,Ibsen,Camel in Action 4,2014,35
Copy to Clipboard Toggle word wrap
注記

繰り返しデータは書籍のタイトルとその公開日に関与しますが、最初は姓と年齢が一般的であり、モデル化に使用されるクラスです。Author クラスには、Book の List が含まれます。

繰り返しデータを使用した CSV の生成

@CsvRecord(separator=",")
public class Author {

    @DataField(pos = 1)
    private String firstName;

    @DataField(pos = 2)
    private String lastName;

    @OneToMany
    private List<Book> books;

    @DataField(pos = 5)
    private String Age;
}

public class Book {

    @DataField(pos = 3)
    private String title;

    @DataField(pos = 4)
    private String year;
}
Copy to Clipboard Toggle word wrap

ケース 2: タグ/キーのグループを含む FIX メッセージの読み取り

モデルで処理するメッセージを以下に示します。

8=FIX 4.19=2034=135=049=INVMGR56=BRKR
1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test
22=448=BE000124567854=1
22=548=BE000987654354=2
22=648=BE000999999954=3
10=220
Copy to Clipboard Toggle word wrap

タグ 22、48、および 54 が繰り返されます。

コードは以下のようになります。

タグ/キーのグループを含む FIX メッセージの読み取り

public class Order {

    @Link Header header;

    @Link Trailer trailer;

    @KeyValuePairField(tag = 1) // Client reference
    private String account;

    @KeyValuePairField(tag = 11) // Order reference
    private String clOrdId;

    @KeyValuePairField(tag = 58) // Free text
    private String text;

    @OneToMany(mappedTo = "org.apache.camel.dataformat.bindy.model.fix.complex.onetomany.Security")
    List<Security> securities;
}

public class Security {

    @KeyValuePairField(tag = 22) // Fund ID type (Sedol, ISIN, ...)
    private String idSource;

    @KeyValuePairField(tag = 48) // Fund code
    private String securityCode;

    @KeyValuePairField(tag = 54) // Movement type ( 1 = Buy, 2 = sell)
    private String side;
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat