From 3dd1d672a4fee09fe632231bd625d71fdaa52916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E5=BD=A6=E4=BC=9F?= Date: Fri, 16 Jul 2021 14:48:52 +0800 Subject: [PATCH] Fix GORM returns ErrRecordNotFound when failed to find data with Find, Pluck, ScanRows --- finisher_api.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/finisher_api.go b/finisher_api.go index 537c955a..be43a4e9 100644 --- a/finisher_api.go +++ b/finisher_api.go @@ -162,6 +162,7 @@ func (db *DB) Find(dest interface{}, conds ...interface{}) (tx *DB) { tx.Statement.AddClause(clause.Where{Exprs: exprs}) } } + tx.Statement.RaiseErrorOnNotFound = false tx.Statement.Dest = dest return tx.callbacks.Query().Execute(tx) } @@ -494,6 +495,7 @@ func (db *DB) Pluck(column string, dest interface{}) (tx *DB) { Columns: []clause.Column{{Name: column, Raw: len(fields) != 1}}, }) } + tx.Statement.RaiseErrorOnNotFound = false tx.Statement.Dest = dest return tx.callbacks.Query().Execute(tx) } @@ -503,6 +505,7 @@ func (db *DB) ScanRows(rows *sql.Rows, dest interface{}) error { if err := tx.Statement.Parse(dest); !errors.Is(err, schema.ErrUnsupportedDataType) { tx.AddError(err) } + tx.Statement.RaiseErrorOnNotFound = false tx.Statement.Dest = dest tx.Statement.ReflectValue = reflect.ValueOf(dest) for tx.Statement.ReflectValue.Kind() == reflect.Ptr {