Go-Gorm:设置对象时会自动填充外键吗?

Go-Gorm: will the foreignkey be auto-populated when I set an object?

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

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

If I do something like profile.User = &user, will that automatically populate the UserID field?

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

Is it recommended to set both?

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