diff --git a/scope.go b/scope.go index 1ff169e4..543c4cde 100644 --- a/scope.go +++ b/scope.go @@ -247,7 +247,7 @@ func (scope *Scope) Fields() []*Field { // Search for primary key tag identifier field.isPrimaryKey = scope.PrimaryKey() == field.DBName || fieldStruct.Tag.Get("primaryKey") != "" - fmt.Printf("Name: %s\n isPrimaryKey: %v\n\n", field.DBName, field.isPrimaryKey) + if field.isPrimaryKey { scope.primaryKey = field.DBName } diff --git a/scope_private.go b/scope_private.go index ecee1477..d9f16438 100644 --- a/scope_private.go +++ b/scope_private.go @@ -475,7 +475,13 @@ func (scope *Scope) autoMigrate() *Scope { } func (scope *Scope) getPrimaryKey() string { - indirectValue := reflect.Indirect(reflect.ValueOf(scope.Value)) + var indirectValue reflect.Value + + indirectValue = reflect.Indirect(reflect.ValueOf(scope.Value)) + + if indirectValue.Kind() == reflect.Slice { + indirectValue = reflect.New(indirectValue.Type().Elem()).Elem() + } if !indirectValue.IsValid() { return "id"