+-
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字段吗?

2
投票

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

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

建议同时设置两者吗?

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