gorm 坑

ret 是查询的结果. 先查询是否有值,if ret.Id >0 ,则进行更新, 此时如果updates传入 model ,会忽略0 nil false字段
mysql.Get().WithContext(ctx).Model(new(models.ProxyState)).Where("id = ?", ret.Id).Updates(ret)

当通过 struct 更新时,GORM 只会更新非零字段。 如果您想确保指定字段被更新,你应该使用 Select 更新选定字段,或使用 map 来完成更新操作

gorm更新doc

  1. 更新或者查询,尽量不要复用 model对象.
  2. 跟mybatis比起来差太远了...😄
评论