假设我有下表
type User struct {
ID int
Name string
Addresses []*Address
}
type Address struct {
ID int
UserID int
Address string
}
我有 1 个用户在 DB 上有 2 个地址
User{
ID: 1,
Name: "sample",
Addresses: []*Address{
&Address{ID: 10, UserID: 1, Address: "addr1"},
&Address{ID: 11, UserID: 1, Address: "addr2"} // <- want to delete it
}
}
如果我从用户地址 slice 中删除第二个地址并保存用户实体,
DB上仍然存在第二个地址...
有没有办法在保存 parent 时删除 child ?
最佳答案
您确定要保存的那个,在同一个条目上更新或创建为不同的条目。在对该特定用户的删除操作中,您可能还需要为该用户更新操作,即完全删除该地址列并使用该地址进行更新可能有效。我不熟悉 gorm 框架,但是有些操作不能直接在 orm 框架中完成,我们需要运行显式查询来执行相同的操作,并且大多数 orm 框架都提供了运行 db 查询的选项。
关于go - 保存父项时自动删除子记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59099137/