Gorm ErrRecordNotFound 的坑
原先的一个查找的写法:
if err := db.Table("users").Where("wechat_account = ?", wechat_id).First(u).Error; err != nil { return nil, err
}
这里隐含了一个依赖,就是如果没有查找到相应记录,会返回 ErrRecordNotFound
的错误。但是重构之后写法改成了传入 optional 条件进行 query 的形式,最终查询使用的语句是 db.Find()
。而在 gorm 中,First 在查找不到记录时会返回 ErrRecordNotFound
的错误,但是 Find 不会,就导致重构前后的逻辑不一致
以上是 Gorm ErrRecordNotFound 的坑 的全部内容, 来源链接: utcz.com/z/264491.html