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, я всегда получаю сообщение об ошибке, которое не может выполнить предварительную загрузку. Я предполагаю, что аннотация gorm не совсем правильная ... но, похоже, она соответствует шаблону, поэтому я не уверен, на что смотреть сейчас.