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