@OneToMany 주석의 목적은 List<?& gt; 필드를 정의하거나 반복적인 그룹을 포함하는 레코드에서 작업할 수 있도록 하는 것입니다.
*Restrictions OneToMany*
*Restrictions OneToMany*
Copy to ClipboardCopied!Toggle word wrapToggle overflow
많은 bindy의 경우 계층 구조의 여러 수준에서 정의된 반복을 처리할 수 없습니다.
OneToMany는 다음과 같은 경우에만 작동합니다.
반복 그룹을 포함하는 FIX 메시지 읽기 (= 태그/키 그룹)
반복적인 데이터를 사용하여 CSV 생성
Expand
주석 이름
레코드 유형
level
OneToMany
all
속성
Expand
매개변수 이름
type
정보
mappedTo
string
선택 사항 - 문자열 - List<Type of the Class> 유형과 연결된 클래스 이름
Case 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
참고: 반복적인 데이터는 책의 제목과 게시일 때 첫 번째는 성, 나이와 관련이 있습니다.
그리고 이 클래스를 모델링하는 데 사용되는 클래스입니다. 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
매우 간단한 것은 아닙니다!!
case 2 : tags/keys 그룹을 포함하는 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