Golang GORM 和几个表关联

标签 go orm go-gorm

结构:

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

I 插入宽度:

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", 用户: [{id:1, name: "Usr"}]}]

同样在 SQL 表 groupsusers 中未找到。 (所有结构都将 gormConn.AutoMigrate)

最佳答案

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

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

关于Golang GORM 和几个表关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37284532/

相关文章:

GORM 戈朗 : the purpose of cloning DB instance

orm - 有关于小巧 Dapper 文件吗?

postgresql - golang ORM 表名

java - Hibernate 集合中的独特项目

amazon-web-services - 将 Go 项目部署到 AWS Lambda 时出现 "PathError"

mysql - Gorm处理HasOne关系

go - 如何在 GORM 中定义日期

go - 读取没有结构的BQ查询结果

go - 如何为 Go 中的行插入重用单个 Postgres DB 连接?

session - Golang iris session 不是持久的