From 0729261b627d0f73ab0e9bccc5b548d5e55fae88 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Fri, 8 Apr 2022 14:23:25 +0800 Subject: [PATCH] Support double ptr for Save --- finisher_api.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/finisher_api.go b/finisher_api.go index aa8e2b5a..5e4c3c5a 100644 --- a/finisher_api.go +++ b/finisher_api.go @@ -74,6 +74,10 @@ func (db *DB) Save(value interface{}) (tx *DB) { tx.Statement.Dest = value reflectValue := reflect.Indirect(reflect.ValueOf(value)) + for reflectValue.Kind() == reflect.Ptr || reflectValue.Kind() == reflect.Interface { + reflectValue = reflect.Indirect(reflectValue) + } + switch reflectValue.Kind() { case reflect.Slice, reflect.Array: if _, ok := tx.Statement.Clauses["ON CONFLICT"]; !ok {