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

一对多操作、

一、增加

user := relate_tables.User2{ Name:"halle", Age:18, Addr:"xxx", Articles:[]relate_tables.Article{{ Title:"标题测试", Content:"内容测试", Desc:"描述测试", },{ Title:"标题测试2", Content:"内容测试2", Desc:"描述测试2", }, }, } ret := db.Create(&user) fmt.Println(ret.RowsAffected) fmt.Println(ret.Error)

二、查询

1.Preload

var user2 relate_tables.User2 db.Preload("Articles").Find(&user2,2) // 关系名 fmt.Println(user2)

2.Association

var user2 relate_tables.User2 db.First(&user2,2) db.Model(&user2).Association("Articles").Find(&user2.Articles) fmt.Println(user2)

3.Related

var user2 relate_tables.User2 db.First(&user2,1) var articles []relate_table.Article db.Model(&user2).Related(&articles, "Articles") // 关系名称

三、更新

// 先查询 var user2 relate_tables.User2 db.Preload("Articles").Find(&user2,2) // 关系名 // 再更新,更新指定条件,不然会把所有满足条件的都更新 db.Model(&user2.Articles).Where("title=? and uid=?","标题测试2",2).Update("uid",3) // name和uid限制条件 // update只能更新一个字段,如果想同时更新多个字段,使用save,后面会讲

四、删除

// 先查询
var user2 relate_tables.User2
db.Preload("Articles").Find(&user2,2) // 关系名



// 再删除,删除要指定条件,不然会把所有满足条件的都删除
db.Delete(&user2.Articles,"title=? and uid=?","标题测试3",3)

// 或者使用where
db.Where("title=? and uid=?","标题测试3",3).Delete(&user2.Articles)

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

添加新回复
目录