首页 > 解决方案 > Go-Gorm:设置对象时会自动填充外键吗?

问题描述

在文档中,我们有这个例子:

type User struct {
  gorm.Model
  Name string
}

// `Profile` belongs to `User`, `UserID` is the foreign key
type Profile struct {
  gorm.Model
  UserID int
  User   User
  Name   string
}

如果我做类似的事情profile.User = &user,那会自动填充该UserID字段吗?是否建议同时设置?喜欢:

profile.User = &user
profile.UserID = &user.ID

还是那毫无意义?此外,我是否可以只设置UserID字段并完全忽略该User字段?

标签: gogo-gorm

解决方案


如果我做类似的事情profile.User = &user,那会自动填充 UserID 字段吗?

只写profile.User = &user不会填充该UserID字段。一旦你添加profile到数据库中。gorm 将自动填充外键。

是否建议同时设置?

没有。事实上,你不应该设置自己UserID。这也回答了最后一个问题。


推荐阅读