的Structs:
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
)
答案 0 :(得分:1)
使用ORM加载外键相关表称为 Eager Loading 。默认情况下,使用Find()
在GORM中关闭EagerLoading。最好使用Preload()
来加载嵌套数据。
官方文档的链接 - http://jinzhu.me/gorm/crud.html#preloading-eager-loading