Gorm预紧嵌套结构

时间:2019-10-28 08:52:01

标签: go go-gorm

var body: some View {
    var builder = VStackBuilder()
    builder.add(Image(uiImage: image))
    builder.add(Text(title))
    builder.add(Text(subtitle))
    return builder.build()
}
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
}

我目前遇到的问题是我根本没有从struct2取回数据。我认为这是Struct1中创建关联的gorm批注的问题...但是我不确定这是怎么回事。

无论我如何尝试使MyDefault1和MyDefault2的Preload进入。我总是会遇到无法预加载的错误。我的猜测是gorm注释并不完全正确...但是它似乎遵循了该模式,因此我不确定现在要看什么。

1 个答案:

答案 0 :(得分:0)

  • MyStruct1中存在拼写错误:foriegnkeyforeignkey
  • MyStruct1的标记值中有多余的空格。

这些原因使Gorm无法分析MyStruct1的关系。

type MyStruct1 struct {
    Model
    MainStructID int64     `json:"-"`
    ID1          int64     `json:"-"`
    ID2          int64     `json:"-"`
    MyDefault1   MyStruct2 `gorm:"foreignkey:ID;association_foreignkey:ID1"`
    MyDefault2   MyStruct2 `gorm:"foreignkey:ID;association_foreignkey:ID2"`
}