【发布时间】:2021-05-27 07:12:27
【问题描述】:
我正在尝试级联删除以下结构:
type Action struct {
gorm.Model
Name string
Email string
Halls []Hall `gorm:"foreignKey:ActionID"`
}
type Hall struct {
gorm.Model
Name string
ActionID uint
Stream Stream `gorm:"foreignKey:HallID"`
}
type Stream struct {
ID uint `gorm:"primaryKey"`
HallID uint
Name string
}
db.Select("Halls").Delete(&action) - 适用于选定的action 和所有相关的halls。
如何删除这个和相关的streams?
比如:
db.Select("Halls", "Streams").Delete(&action)
db.Select("Streams").Select("Halls").Delete(action)
没用。
谢谢
【问题讨论】:
-
我不确定它是否会影响嵌套的
Stream模型,但您可以尝试db.Select("Halls.Stream").Delete(&action)或db.Select(clause.Associations).Delete(&action) -
@EminLaletovic 它不起作用。我不确定软删除是否可以实现 OP 的要求。没有它,一个简单的
constraint:OnDelete:CASCADE就可以解决它。