如果您想要更新关联的数据,您应该使用 FullSaveAssociations 模式:

true}).Updates(&user) // ... // INSERT INTO "addresses" (address1)
VALUES ("Billing Address - Address 1"), ("Shipping Address - Address
1") ON DUPLICATE KEY SET address1=VALUES(address1); // INSERT INTO
"users" (name,billing_address_id,shipping_address_id) VALUES
("jinzhu", 1, 2); // INSERT INTO "emails" (user_id,email) VALUES (111,
"jinzhu@example.com"), (111, "jinzhu-2@example.com") ON DUPLICATE KEY
SET email=VALUES(email); // ... ```

这种更新方式才会更新关联表的数据:
global.GVA_DB.Session(&gorm.Session{FullSaveAssociations: true}).Updates(&projectManagement).Error

// UpdateProjectManagement 更新ProjectManagement记录
// Author [piexlmax](https://github.com/piexlmax)
func (projectManagementService *ProjectManagementService) UpdateProjectManagement(projectManagement autocode.ProjectManagement) (err error) {// err = global.GVA_DB.Save(&projectManagement).Errorerr = global.GVA_DB.Session(&gorm.Session{FullSaveAssociations: true}).Updates(&projectManagement).Errorreturn err
}

官方文档:
https://gorm.io/zh_CN/docs/associations.html

【GVA】gin gorm多对多many2many更新数据时级联更新关联表数据的正确写法相关推荐

  1. 【GVA】gorm多对多many2many删除数据的同时级联删除关联中间表中的关联数据

    // DeleteBusinessSystem 删除BusinessSystem记录 // Author [piexlmax](https://github.com/piexlmax) func (b ...

  2. gorm使用Joins方法查询关联表数据的示例

    前言 gorm中的Joins方法只支持一对一关系.需要想要支持其它多关系表的查询,需要手写关联关系.只要记住下面的方式在看一下示例就很容易记住了: 一对一关系:只有一对一关系才能直接使用gorm原生的 ...

  3. java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除

    hibernate执行多对多关联查询时,关联表数据被删除 本帖最后由 binbb521 于 2012-12-04 11:48:29 编辑 S2SH框架开发的网站,执行两个多对多关系的表查询时,关联两个 ...

  4. Redis:缓存问题之数据不一致(更新数据库时 主动更新)

    Redis:缓存问题之数据不一致(更新数据库时 主动更新) 关键词 数据源不一样(缓存和db操作非原子性) 1.延时双删 -> 2.TTL -> 3.缓存删除失败记录到日志中,利用脚本提取 ...

  5. 跳过数据准备,下秒数据让飞书维格表数据应用更高效

    跳过数据准备,下秒数据让飞书&维格表数据应用更高效 随着业务场景的多元化发展,消费者需求的个性化,海量数据暴增.数字化时代,传统的生产工具已经无法跟上时代的步伐,传统办公软件也无法满足企业的多 ...

  6. 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异...

    今天 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致的问题,郁闷我很长一段时间 执行的方法 ...

  7. python作业:有一个学生成绩表,包括学号、姓名、高数、英语,计算机。 录入若干个学生学号、姓名、高数、英语,计算机5项数据。 将学生成绩表数据写入文件,文件名为“学生成绩表.txt

    1.有一个学生成绩表,包括学号.姓名.高数.英语,计算机. 录入若干个学生学号.姓名.高数.英语,计算机5项数据. 将学生成绩表数据写入文件,文件名为"学生成绩表.txt import cs ...

  8. mysql中用于删除数据的是什么意思_在删除关系表中数据时,要先删除主表数据再删除从表数据。_学小易找答案...

    [单选题]在MySQL中,所有存储过程的信息存放在下列哪个数据库中 [填空题]拉伸试验能测定的塑性指标有: 和 . [单选题]下面查看视图的基本信息的语句中,正确的是 [单选题]下面关于视图建立的说法 ...

  9. 更新数据时redis缓存与数据库数据不一致的问题

    最初级的缓存不一致问题及解决方案 问题:先修改数据库,再删除缓存.如果删除缓存失败了,那么会导致数据库中是新数据,缓存中是旧数据,数据就出现了不一致. 解决思路:先删除缓存,再修改数据库.如果数据库修 ...

最新文章

  1. Mahout-协同过滤-CF-推荐算法基本概念及代码示例
  2. 离线轻量级大数据平台Spark之中文字符显示问题的解决
  3. MemoryStream类
  4. 简述css布局技术的特点,div+css布局技术漫谈
  5. ITK:直方图创建和Bin访问
  6. 关闭mysql服务的方法有哪些_MySQL--启动和关闭MySQL服务
  7. TensorFlow tf.keras.layers.conv2D
  8. Ubuntu桌面生存指南:Linux 的哲学
  9. 3ds max 旋转及角度
  10. 数据收发过程中的网络设备状态
  11. layui 汉字乱码_layui table中文乱码
  12. C++中一些可以在偷懒时直接使用的函数
  13. Harmonious
  14. dede tag标签作用
  15. 机器人算法工程师入门指南(四)常用技能与如何备战offer
  16. 【ARM 嵌入式 C 入门及渐进 4-- Linux 位图 bitmap】
  17. Flutter中PlatformView组件无法刷新的问题
  18. Mysql--instr函数的介绍及使用
  19. insert插入语句
  20. AidLearning中使用Wizard布局python应用程序图形化界面

热门文章

  1. python读取excel送到网页_python+selenium excel中文读取填充到网页
  2. 服务器raid卡装虚拟机,DELLR730服务器阵列卡配置、VMware安装、WIN2008安装.docx
  3. 数字信号处理学习笔记(二)|快速傅里叶变换
  4. 程序员法律考试(6)-民法(3)
  5. erlang虚拟机精要(2)-异步信号时间功能
  6. 【机器学习】盘点Kaggle中常见的AutoML工具库及用法
  7. 【NLP】NLP模型BERT和经典数据集!
  8. 【机器学习】如果你不了解机器学习的简史,请看这篇文章
  9. 【NLP】万字长文带你解读『虚假新闻检测』最新进展
  10. 【学术相关】发表 SCI 论文有哪些实用工具?