Задача: если пользователь отмечен как удаленный при обратном удалении, его календарь также должен быть помечен как удаленный.
структуры:
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 пуст
Любые идеи?