gorm.ErrRecordNotFound 是GORM(一个流行的Go语言ORM库)中的一个错误类型,用于指示在执行查询操作时,没有找到期望的记录。当使用 GORM 进行数据库查询,并且查询结果为空时,GORM 会返回这个错误,以区分是因为查询条件不匹配导致的空结果集,还是因为发生了其他类型的错误(如数据库连接失败)。
1zapLog := gormlog.NewGormLog(log.NewHelper(logger),"mysql")2//忽略找不到的数据报错3zapLog.IgnoreRecordNotFoundError =true 如此设置,便能解决。
Gorm ErrRecordNotFound 的坑 原先的一个查找的写法:if err := db.Table("users").Where("wechat_account = ?", wechat_id).First(u).Error; err != nil { return nil, err} 这里隐含了一个依赖,就是如果没有查找到相应记录,会返回 ErrRecordNotFound 的错误。但是重构之后写法改成了传入 opti...
", 123).Take(lotteryModel).Error//require.Equal(t, errTake, nil)//NoticeFirst方法: 如果记录不存在会报错 record not found//翻译成的SQL语句(注意有Order By): SELECT
GORM之ErrRecordNotFound采坑记录 在我印象中有个错误的认知:如果GORM没有找到record,则会返回ErrRecordNotFound的错误,知道上次业务中出现了bug,我才发现这个印象中的认知是错误的,且没有官方文档的支持。那么,ErrRecordNotFound到底在什么时候返回呢,这篇文章将会根据源码来进行分析一下...
2.如果业务层认为空记录是 Error,那么在业务层应该根据返回的结果为 nil,产生业务级 Error,这是业务层的责任;3.并且 Gorm 在查询需要返回 slice 时,即使空记录也不会产生 RecordNotFound Error,这和调用 first(&user) 这种返回 struct 的用法是相悖的。这个改成这样也是太多人反对“查不到数据就返回 RecordNot...
err := db.Where("username = ?", username).Not("level = ?", -1).First(&User{}).Error if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return false, nil } return false, err } return true, nil } kkb-1added thetype:questiongeneral questionslabelApr 20, 2024 ...
通过配置日志参数IgnoreRecordNotFoundError=true实现忽略数据不存在的日志 完整配置示例 newLogger := logger.New( log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer logger.Config{ SlowThreshold: time.Second, // Slow SQL threshold
Hello, we are seeing something very concerning with this code: u := User{ID: "EXISTING_STRING_ID_IN_THE_DB"} err = t.rdsMainDB.First(&u, "id = ?", "EXISTING_STRING_ID_IN_THE_DB").Error log.Println(r) returns: ErrRecordNotFound even though that is a legit id in the Users ...
当First、Last、Take 方法找不到记录时,GORM 会返回 ErrRecordNotFound 错误。如果发生了多个错误,你可以通过 errors.Is 判断错误是否为 ErrRecordNotFound,例如: // 检查错误是否为 RecordNotFound err := db.First(&user,100).Error errors.Is(err, gorm.ErrRecordNotFound)...