2014-06-05 2 views
1

항목과 클라이언트가 포함 된 데이터베이스가 있습니다. 각 항목은 단일 클라이언트에 속할 수 있습니다. 지금, 내 구조체는 다음과 같습니다golang의 GORM에서 다른 요소를 참조하십시오.

type Item struct { 
    Id  int64 
    Barcode string `sql:"not null;unique"` 
    Name  string 
    ... 
    ClientId int64 
    CreatedAt time.Time 
    UpdatedAt time.Time 
} 

type Client struct { 
    Id int64 
    Name string 
    Telephone int64 
} 

이 GORM의 Related() 기능을 훌륭하게 작동합니다. 그러나, 나는 다음과 같이 페이스 북 스타일의 구조체를 반환해야 싶습니다

{ 
    "Id": 1, 
    "Barcode": "AA4854845", 
    "Name": "100m 3.5mm", 
    "Model": "Random", 
    "Description": "test", 
    "Status": "new", 
    "BoxId": 0, 
    "Client": { 
     "Id": 3, 
     "Name": "John", 
     "Telephone": 123456789 
    }, 
    "CreatedAt": "2014-06-05T16:59:35.639115765Z", 
    "UpdatedAt": "2014-06-05T16:59:35.639119134Z" 
} 

이는 ItemClient Client 객체를 추가하여 수행 할 수 있습니다. 하지만 결국

"ClientId": 0, 
"Client": { 
    "Id": 0, 
    ... 
}, 

으로 끝납니다. 이 문제를 해결하는 데 도움이 될만한 것이 누락 되었습니까?

+0

코드를 추가 할 수 있습니까? 구조체 정의와 로그만으로는 충분하지 않습니다. –

답변

0

사전로드 기능을 사용하여 체크 아웃해야합니다. https://github.com/jinzhu/gorm#preloading-eager-loading

+0

멋지게 보이지만 2 개의 필드로 끝나지 않을까요? : 하나는 "user"로, 다른 하나는 "user_id"로 끝납니다. 그렇지 않다면 이것은 완벽합니다! –

관련 문제