所以基本上我有 3 个模型:User、Profile和Post。
它们是这样相关的:User 有一个 Profile. Profile 有很多 Post
它们看起来像这样:
type User struct {
Base // holds this object's uuid, createdAt, updatedAt
Role string `json:"role"`
Username string `json:"username" gorm:"unique"`
Password string `json:"password"`
Profile Profile `gorm:"constraint:OnDelete:CASCADE;"`
}
type Profile struct {
Base // holds this object's uuid, createdAt, updatedAt
UserId string `json:"user_id"`
Name string `json:"name"`
Bio string `json:"bio"`
Age uint8 `json:"age"`
Posts []Post `gorm:"constraint:OnDelete:CASCADE;"`
}
type Post struct {
Base // holds this object's uuid, createdAt, updatedAt
ProfileId string `json:"profile_id"`
Caption string `json:"caption"`
Likes uint32 `json:"num_likes" gorm:"default:0"`
}
我想要发生的是当我删除用户时,我希望删除配置文件以及与之相关的所有帖子。我对关系数据库的唯一其他经验是 Django,它是自动的。
实际发生的情况是,当我删除用户时,配置文件被删除,但帖子仍保留在数据库中。
这就是我删除用户的方式:
...
base := models.Base{Id: id}
if err := configs.Database.Select(clause.Associations).Delete(&models.User{Base: base}).Error; err != nil {
return c.Status(400).JSON(err.Error())
}
...
我已经看过这个但它不是很有帮助。我怎么能做到这一点?
谢谢你!
尚方宝剑之说
相关分类