diff --git a/schema/utils.go b/schema/utils.go index e005cc74..13ca8ebf 100644 --- a/schema/utils.go +++ b/schema/utils.go @@ -104,7 +104,12 @@ func GetIdentityFieldValuesMap(reflectValue reflect.Value, fields []*Field) (map loaded = map[interface{}]bool{} notZero, zero bool ) - + if reflectValue.Kind() == reflect.Interface { + reflectValue = reflectValue.Elem() + if reflectValue.Kind() == reflect.Ptr { + reflectValue = reflectValue.Elem() + } + } switch reflectValue.Kind() { case reflect.Struct: results = [][]interface{}{make([]interface{}, len(fields))}