【发布时间】:2018-08-29 18:45:43
【问题描述】:
目标:如果用户在软删除中被标记为已删除,他的日历也应该被标记为已删除。
结构:
type User struct {
gorm.Model
Username string
FirstName string
LastName string
Calendar Calendar
}
type Calendar struct {
gorm.Model
Name string
UserID uint
}
约束:
db.Model(&Calendar{}).AddForeignKey("user_id", "users(id)", "CASCADE","CASCADE")
问题:
硬删除有效:用户和他的日历都被删除(记录消失了)
db.Exec("Delete from users where id=3")
软删除无法正常工作:
db.Where("id = ?", 3).Delete(&User{})
使用软删除,
- 用户表字段 => deleted_at 已过时。
- 日历表=? deleted_at 为空白
有什么想法吗?
【问题讨论】: