48.11. 8. OneToMany


주석 @OneToMany의 용도는 List<? > 필드에서 POJO 클래스를 정의하거나 반복적인 그룹을 포함하는 레코드에서 작업할 수 있도록 하는 것입니다.

*Restrictions OneToMany*

여러 수준의 계층 구조에서 정의된 반복을 처리할 수 없습니다.Easily, the one to bindy does not allow to handle repetitions defined on several levels of the hierarchy.

다음 경우 관련 OneToMany ONLY WORKS:

  • 반복적인 그룹(= 태그/키 그룹)이 포함된 FIX 메시지 읽기
  • 반복적인 데이터로 CSV 생성
주석 이름레코드 유형level

OneToMany

all

속성

매개변수 이름type정보

mappedTo

string

선택 사항 - 문자열 - 클래스의 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

Remark : 반복적인 데이터는 첫 번째, 마지막 이름과 나이는 일반적인 책과 게시 날짜의 제목과 관련이 있습니다.

또한 이 문제를 모델링하는 데 사용되는 클래스입니다. Author 클래스에는 도서 목록이 포함되어 있습니다.

반복적인 데이터로 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;
}

매우 간단한 것은 아닙니다!

케이스 2 : 태그/키 그룹이 포함된 FIX 메시지 읽기

다음은 우리 모델에서 처리하려는 메시지입니다.Here is the message that we want to process in our model:

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

태그(2, 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;
}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.