Gorm ErrRecordNotFound 的坑

发布于 2022-01-29 13:14:11 字数 397 浏览 1530 评论 0

原先的一个查找的写法:

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 不会,就导致重构前后的逻辑不一致

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文