目标:如果用户在软删除中被标记为已删除,则他的日历也应被标记为已删除。
结构:
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 为空
有任何想法吗?
千巷猫影
catspeake
相关分类