From f6550419088d21a98cf5f3c8dc3bfc30e46e1cb1 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Sun, 6 Dec 2020 11:06:52 +0800 Subject: [PATCH] Allow overwrite ignored field's permission, close #3829 --- schema/schema.go | 2 +- statement.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schema/schema.go b/schema/schema.go index 8d9368da..e36ed7b6 100644 --- a/schema/schema.go +++ b/schema/schema.go @@ -161,7 +161,7 @@ func Parse(dest interface{}, cacheStore *sync.Map, namer Namer) (*Schema, error) } } - if _, ok := schema.FieldsByName[field.Name]; !ok { + if of, ok := schema.FieldsByName[field.Name]; !ok || of.TagSettings["-"] == "-" { schema.FieldsByName[field.Name] = field } diff --git a/statement.go b/statement.go index 27edf9da..a0da0c6d 100644 --- a/statement.go +++ b/statement.go @@ -576,7 +576,7 @@ func (stmt *Statement) SelectAndOmitColumns(requireCreate, requireUpdate bool) ( } if stmt.Schema != nil { - for _, field := range stmt.Schema.Fields { + for _, field := range stmt.Schema.FieldsByName { name := field.DBName if name == "" { name = field.Name