Golang GORM和几个表协会

时间:2016-05-17 19:16:44

标签: go orm go-gorm

的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表groupsusers中找不到。 (所有结构将gormConn.AutoMigrate

1 个答案:

答案 0 :(得分:1)

使用ORM加载外键相关表称为 Eager Loading 。默认情况下,使用Find()在GORM中关闭EagerLoading。最好使用Preload()来加载嵌套数据。

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