Go-Gorm: будет ли автоматически заполняться чужой ключ при установке объекта? - PullRequest
1 голос
/ 26 апреля 2019

В документации у нас есть такой пример:

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?

1 Ответ

2 голосов
/ 26 апреля 2019

Если я сделаю что-то вроде profile.User = &user, будет ли это автоматически заполнять поле UserID?

Просто запись profile.User = &user не заполнит поле UserID.Как только вы добавите profile в базу данных.gorm автоматически заполнит внешний ключ.

Рекомендуется ли устанавливать оба?

Нет.На самом деле, вы должны , а не установить UserID самостоятельно.Это также отвечает на последний вопрос.

...