本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

一对一操作

一、增加

user_profile := relate_tables.UserProfile{ Pic:"1.jpg",CPic:"2.jpg",Phone:"xxx", User:relate_tables.User{Name:"hallen",Age:18,Addr:"xxx"}, } result := db.Create(&user_profile) 默认是关联创建或更新的 创建/更新时不会保存关联:`gorm:"save_associations:false"`

二、查询

1.第一种方式:Association

// 先查询出来,在根据Association属性值关联查询,Association的值为关联表的模型名称 var u_profile relate_tables.UserProfile db.First(&u_profile,1) fmt.Println(u_profile) db.Model(&u_profile).Association("User").Find(&u_profile.User)

2.第二种方式:Preload

var u_profile relate_tables.UserProfile db.Debug().Preload("User").First(&u_profile,1) // 关系名 fmt.Println(u_profile)

3.第三种方式:Related

var user_profile3 relate_tables.UserProfile db.First(&user_profile3,1) var user relate_tables.User db.Model(&user_profile3).Related(&user,"User")

三、更新

// 先关联查询出来,再更新关联表中的字段 var u_profile1 relate_tables.UserProfile db.Debug().Preload("User").First(&u_profile1,1) fmt.Println(u_profile1) db.Model(&u_profile1.User).Update("p_id",2)

四、删除

// 通过主表删除关联表中的 var u_profile2 relate_tables.UserProfile db.Debug().Preload("User").First(&u_profile2,1) db.Delete(&u_profile2.User)

1234人已阅读,今天你学习了吗?

添加新回复
目录