#gorm 零值坑
1.
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 来完成更新操作
反向理解: 更新时候,传入对象&User{status:0} ,其他字段没传 默认都是零值, 此时gorm 到底是更新还是不更新?
- 更新或者查询,尽量不要复用 model对象.
- 跟mybatis比起来差太远了...😄