From d96dfed30ebbd36ab5179326c8bafe62b04f0011 Mon Sep 17 00:00:00 2001 From: joelBai Date: Mon, 6 Jan 2020 02:44:41 +0000 Subject: [PATCH] fix batch insert []interface{*struct, ...} be panic --- session_insert.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/session_insert.go b/session_insert.go index 1e19ce7a..57393100 100644 --- a/session_insert.go +++ b/session_insert.go @@ -126,7 +126,13 @@ func (session *Session) innerInsertMulti(rowsSlicePtr interface{}) (int64, error for i := 0; i < size; i++ { v := sliceValue.Index(i) - vv := reflect.Indirect(v) + var vv reflect.Value + switch v.Kind() { + case reflect.Interface: + vv = reflect.Indirect(v.Elem()) + default: + vv = reflect.Indirect(v) + } elemValue := v.Interface() var colPlaces []string