// `User` 属于 `Company`,`CompanyID` 是外键type User struct{gorm.ModelName stringCompanyID int//数据库中存储的字段 正常情况下需要去满足这个命名条件Company Company `gorm:"foreignKey:CompanyRefer"`//真实存储的数据}type Company struct{ID intName string}
db.Create(&User{Name:"sdaf"Company:Colmpany{ID:1,//只有id就会直接插入Name:"acc"//会自动创建}})
db.Omit("Company").Create() 这个就是会自动忽略关联关系的创建//查询的问题
db.Preload("company").First(&user)
has Many
// User 有多张 CreditCard,UserID 是外键type User struct{gorm.ModelCreditCards []CreditCard `gorm:"foreignKey:UserRefer"`}type CreditCard struct{gorm.ModelNumber stringUserRefer uint}err := db.Model(&User{}).Preload("CreditCards").Find(&users).Error
Many To Many
// User 拥有并属于多种 language,`user_languages` 是连接表type User struct{gorm.ModelLanguages []*Language `gorm:"many2many:user_languages;"`}type Language struct{gorm.ModelName stringUsers []*User `gorm:"many2many:user_languages;"`}