1

结构:

type (
  User struct{
    ID int64
    Name string
  }
  Group struct{
    ID int64
    Name string
    Users []User
  }
)

我插入宽度:

users := []User{}
user := User{ID: int64(1)}
gormConn.First(&user) // .Error is nil, user with ID=1 exists
users = append(users, user)

group := Group{
  Name: "Grrr",
  Users: users,
}
gormConn.Create(&group)

但是当我打电话时gormConn.Find(&groups),我会得到[{id: 1, name: "Grrr", users: null}]而不是[{id: 1, name: "Grrr", users: [{id:1, name: "Usr"}]}]

同样在 SQL 表groups列中users未找到。(所有结构都会gormConn.AutoMigrate

4

1 回答 1

1

使用 ORM 加载与外键相关的表称为Eager Loading。EagerLoading 在 GORM 中默认是关闭的,使用Find(). 更好地Preload()用于加载嵌套数据。

官方文档链接 - http://jinzhu.me/gorm/crud.html#preloading-eager-loading

于 2017-08-28T13:38:22.630 回答