From 7be135d7be185dfaf34695ce4af34f9cc471e8ae Mon Sep 17 00:00:00 2001 From: kinggo <1510613524@qq.com> Date: Thu, 30 Sep 2021 12:16:46 +0800 Subject: [PATCH] fix:update miss where condition --- callbacks/update.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/callbacks/update.go b/callbacks/update.go index 7d5ea4a4..45960b74 100644 --- a/callbacks/update.go +++ b/callbacks/update.go @@ -235,8 +235,8 @@ func ConvertToAssignments(stmt *gorm.Statement) (set clause.Set) { case reflect.Struct: set = make([]clause.Assignment, 0, len(stmt.Schema.FieldsByDBName)) for _, dbName := range stmt.Schema.DBNames { - if field := updatingSchema.LookUpField(dbName); field != nil && field.Updatable { - if !field.PrimaryKey || !updatingValue.CanAddr() || stmt.Dest != stmt.Model { + if field := updatingSchema.LookUpField(dbName); field != nil { + if field.Updatable && (!field.PrimaryKey || !updatingValue.CanAddr() || stmt.Dest != stmt.Model) { if v, ok := selectColumns[field.DBName]; (ok && v) || (!ok && (!restricted || (!stmt.SkipHooks && field.AutoUpdateTime > 0))) { value, isZero := field.ValueOf(updatingValue) if !stmt.SkipHooks && field.AutoUpdateTime > 0 {