假设我有下表
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
}
}
如果我从“用户的地址”切片中删除第二个地址并保存用户实体,第二个地址仍然存在于数据库中...
保存父母时有什么办法删除孩子?
您确定要保存的那个,在同一条目上更新还是在其他条目上创建。在针对该特定用户的删除操作上,您可能还需要对该用户进行更新操作,即,完全删除该地址列并使用该地址进行更新可能会起作用。我对gorm框架不熟悉,但是某些操作无法直接在orm框架中完成,因为在orm框架中我们需要运行显式查询以执行相同操作,并且大多数orm框架都提供了运行db查询的选项。