Gorm Preload Вложенные структуры - PullRequest
0 голосов
/ 28 октября 2019
type MainStruct struct {
Defaults
Foo string
Bar string
Baz int64
Struct1  MyStruct1 `gorm:"foreignkey:MainStructID"`
}
type MyStruct1 struct {
    Defaults
    MainStructID int64                  `json:"-"`       
    ID1          int64                  `json:"-"` 
    ID2         int64                   `json:"-"` 
    MyDefault1     MyStruct2 `gorm: "foriegnkey:ID;association_foreignkey:ID1"`
    MyDefault2    MyStruct2 `gorm: "foriegnkey:ID;association_foreignkey:ID2"`
}
type MyStruct2 struct {
    Defaults
    Field1              string
    Field2           string
    Field3          string
}

Учитывая приведенные выше структуры, я хочу сделать что-то вроде

baseVersion MainStruct
db.Where("ID = ?", myInputID).Preload("Struct1").
        Preload("Struct1.MyDefault1").
        Preload("Struct1.MyDefault2").
        First(&baseVersion)

Проблема, с которой я сталкиваюсь в настоящее время, заключается в том, что я не получаю данные отstruct2 вообще. Я думаю, что это проблема с аннотацией gorm в Struct1, создающей ассоциацию ... но я не уверен, что не так.

Независимо от того, как я пытался заставить Preload od MyDefault1 и MyDefault2 войтиЯ всегда получаю сообщение об ошибке, что он не может предварительно загрузить. Я предполагаю, что аннотации Гормона не совсем правильны ... но, похоже, они следуют шаблону, поэтому я не уверен, что посмотреть сейчас.

...