我有某种虚拟文件系统。文件夹列表,每个文件夹包含文件和ACL。 所以结构看起来像这样:
type Model struct {
ID uint `gorm:"primary_key" json:"id"`
}
type User struct {
Model
Name string
}
type Folder struct {
Model
Name string
}
type File struct {
Model
Name string
FolderID uint
Folder Folder
Acl []User `json:"acl" gorm:"many2many:file_acl"`
}
它来自前端作为完全成熟的JSON。它被解构了。
当我调用Save(&file)
它正确存储文件时,接下来会发生什么,在file_acl
内创建记录。
它还会更新文件夹和用户。
这是我的问题 - 如何跳过这些依赖更新,但保留自动生成的查询以更新/插入file_acl
表?
答案 0 :(得分:0)
我想你可能想要db.Set("gorm:save_associations", false).Save(...)
答案 1 :(得分:0)
要防止级联更新,您应使用association_autoupdate
选项。
Db.Set("gorm:association_autoupdate", false).Save(&file)