通过配置日志参数IgnoreRecordNotFoundError=true实现忽略数据不存在的日志 完整配置示例 newLogger := logger.New( log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer logger.Config{ SlowThreshold: time.Second, // Slow SQL threshold LogLevel: logger.Silent, // Log level IgnoreRecordNotFound...
Gorm ErrRecordNotFound 的坑 原先的一个查找的写法:if err := db.Table("users").Where("wechat_account = ?", wechat_id).First(u).Error; err != nil { return nil, err} 这里隐含了一个依赖,就是如果没有查找到相应记录,会返回 ErrRecordNotFound 的错误。但是重构之后写法改成了传入 opti...
gorm查询 not found处理operate := db.Raw(sql, startTime,endTime).First(&result)if nil != operate.Error { log.Errorln("error:", operate.Error) return nil, operate.Error}.First(&result)未查询到属于错误operate := db.Raw(sql, startTime,endTime).Find(&result)if nil != operate.Error { ...
当First、Last、Take 方法找不到记录时,GORM 会返回 ErrRecordNotFound 错误。如果发生了多个错误,你可以通过 errors.Is 判断错误是否为 ErrRecordNotFound,例如: // 检查错误是否为 RecordNotFound err := db.First(&user,100).Error errors.Is(err, gorm.ErrRecordNotFound)...
// Check if returns RecordNotFound error db.Where("name = ?", "hello world").First(&user)....
// 检查错误是否为 RecordNotFound err := db.First(&user,100).Error errors.Is(err, gorm.ErrRecordNotFound) 更多错误类型,参见gorm源码: var( // ErrRecordNotFound record not found error ErrRecordNotFound = logger.ErrRecordNotFound // ErrInvalidTransaction invalid transaction when you are trying...
record not found &{0 } <nil> &{0 } 综上,可以发现,First()函数找不到record的时候,会返回ErrRecordNotFound, 而Find()则是返回nil,好了,这篇文章就到此结束了 当然,上面一句是开玩笑的,我可不是标题党,没点干货,怎好意思在这扯淡,下面我们开始追进源码 ...
遵循First 的语义,通过 limit 和 order 追加 clause,限制只取满足条件且主键最小的一笔数据 追加用户传入的一系列 condition,进行 clause 追加 在 First、Take、Last 等方法中,会设置RaiseErrorOnNotFound 标识为 true,倘若未找到记录,则会抛出ErrRecordNotFound 错误 var ErrRecordNotFound = logger.ErrRecordNotFo...
对于First,Last,Take函数 如果在数据库中找不到相关的记录,First函数会返回一个gorm.ErrRecordNotFound的错误 RowsAffected字段此时将返回0,表示没有任何行受到影响或找到 因此,要判断是否查找到记录,你可以根据Error字段是否为gorm.ErrRecordNotFound来做判断 res := db.First(&user) if errors.Is(res.Error, gor...
go-gorm/playground#1 Description When not using gorm.Model as the base struct, the method First gets confused when no columns are specified. The expected behavior should be that if an ID column exists, First should keep working like norm...