Looking at an example from their documentation:
type User struct {
gorm.Model
Name string
CompanyID int
Company Company
}
type Company struct {
ID int
Name string
}
CompanyID
field seems rather redundant. Is it possible to get rid of it using some tags on Company
field instead?
CodePudding user response:
Changing User
definition like this did the trick:
type User struct {
gorm.Model
Name string
Company Company `gorm:"column:company_id"`
}
CodePudding user response:
You can create your own BaseModel
instead of using gorm.Model
, for example
type BaseModel struct {
ID uint `gorm:"not null;AUTO_INCREMENT;primary_key;"`
CreatedAt *time.Time
UpdatedAt *time.Time
DeletedAt *time.Time `sql:"index"`
}
Then, in the User
, do something like this, basically overriding the default Foreign Key
type User struct {
BaseModel
Name string
Company company `gorm:"foreignKey:id"`
}
And the Company
type Company struct {
BaseModel
Name string
}