有没有办法在保存对象时自动删除关联?
类似的东西:
type Parent struct {
gorm.Model
Name string
Children []*Child
}
type Child struct {
gorm.Model
Name string
ParentID uint
}
func myFunc(db *gorm.DB) {
p := &Parent{Name: "foo", Children:[]*Child{ {Name:"Bar"}, {Name:"Foobar"}}}
db.Save(&p)
p.Children = p.Children[1:]
db.Save(&p) // both children still exist in the database. i'd like the first child to be deleted here
}
`
我在db.Model(& Parent).Association(" Children")。Clear()中找到了一些技巧,但只是将ParentID值设置为NULL,而不是删除记录。有一种简单的方法吗?
非常感谢提前:)
答案 0 :(得分:0)
我认为您只需使用物理批量删除,如下面的代码:
db.Unscoped().Where("parent_id = ?", p.ID).Delete(Child{})
希望得到这个帮助。