@OneToMany 주석의 용도는 List<?& gt; 필드를 사용하여 DestinationRule 클래스를 정의하거나 반복적인 그룹을 포함하는 레코드에서 작업할 수 있도록 허용하기 위한 것입니다.
*Restrictions OneToMany*
*Restrictions OneToMany*
Copy to ClipboardCopied!Toggle word wrapToggle overflow
주의, 많은 바인딩에 대 한 것은 계층 구조의 여러 수준에서 정의 된 반복을 처리 할 수 없습니다.
관련 OneToMany WORKS in the following cases:
반복적인 그룹이 포함된 FIX 메시지 읽기(= 태그/키 그룹)
반복적인 데이터를 사용하여 CSV 생성
Expand
주석 이름
레코드 유형
level
OneToMany
all
속성
Expand
매개변수 이름
type
정보
mappedTo
string
선택 사항 - 문자열 - List<Type of the Class> 유형과 연관된 클래스 이름
사례 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
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 ClipboardCopied!Toggle word wrapToggle overflow
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;
}
@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 ClipboardCopied!Toggle word wrapToggle overflow
매우 간단한되지 않습니다.!
사례 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
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 ClipboardCopied!Toggle word wrapToggle overflow
태그 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;
}
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 ClipboardCopied!Toggle word wrapToggle overflow