首页 文章

如何在Gorm中正确执行部分更新?

提问于
浏览
0

我有某种虚拟文件系统 . 文件夹列表,每个文件夹包含文件和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时,接下来会发生什么,在 file_acl 中创建记录 .

它还更新文件夹和用户 .

这是我的问题 - 如何跳过这些依赖更新但保留自动生成的查询以更新/插入 file_acl 表?

2 回答

  • 0

    我想你可能想要 db.Set("gorm:save_associations", false).Save(...)

  • 0

    要防止级联更新,您应该使用 association_autoupdate 选项 .

    Db.Set("gorm:association_autoupdate", false).Save(&file)
    

相关问题