【发布时间】:2018-01-29 20:25:51
【问题描述】:
有没有办法在保存对象时自动删除关联?
类似这样的:
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,而不是删除记录。有没有一种简单的方法可以做到这一点?
提前非常感谢:)
【问题讨论】:
-
嗨,你找到答案了吗?我在这里面临同样的问题......
-
是的,可以使用它的映射键值删除子节点
-
@muthukumarselvaraj 你会怎么做?您能否将其发布为答案。当前答案仅硬删除而不是软删除。