2016-06-21 2 views
0

나는 아파치 아 브로에서 "주문"과 그 관련 항목들을 표현하려고한다. 스키마는 아래를 참조하십시오. 이클립스에서 빌드하려고 할 때 아래 오류가 나타납니다. 어떤 도움을 주셔서 감사합니다.중첩 된 스키마의 배열을 가진 avro

[ERROR] Failed to execute goal org.apache.avro:avro-maven-plugin:1.8.1:schema (default) on project avrosample: Execution default of goal org.apache.avro:avro-maven-plugin:1.8.1:schema failed: Undefined name: "com.company.domain.entry" -> [Help 1] 

**Schema For Entry:** 
{"namespace": "com.company.domain", 
"type": "record", 
"name": "entry", 
"fields": [ 
    {"name": "id", "type": "long"}, 
    {"name": "description", "type": "string"}, 
    {"name": "quantity", "type: “int”} 

] 
} 

**Schema for Order:** 
{"namespace": "com.company.domain", 
"type": "record", 
"name": "order", 
"fields": [ 
    {"name": "id", "type": "long"}, 
    {"name": "date", "type": "long"}, 
    {"name": "entries", "type": {"items": "array", "items": "com.company.domain.entry"} }} 

] 
} 

답변

0

내가 실수하지 않는다면, 이런 식으로 엔트리 스키마를 주문 스키마에 연결할 수 없습니다. Order 대신 공동 스키마를 사용하지 않는 이유는 무엇입니까? 다음과 같은 내용 :

{ 
    "type": "record", 
    "name": "Order", 
    "namespace": "com.company.domain", 
    "fields": [ 
    { 
     "name": "id", 
     "type": "long" 
    }, 
    { 
     "name": "date", 
     "type": "long" 
    }, 
    { 
     "name": "entries", 
     "type": { 
     "type": "array", 
     "items": { 
      "type": "record", 
      "name": "Entry", 
      "fields": [ 
      { 
       "name": "id", 
       "type": "long" 
      }, 
      { 
       "name": "description", 
       "type": "string" 
      }, 
      { 
      "name": "quantity", 
       "type": "int" 
      } 
      ] 
     }, 
     "java-class": "java.util.List" 
     } 
    } 
    ] 
} 
관련 문제