From d3558f1e777fe222fbe83a3084d6bd244f9d6e84 Mon Sep 17 00:00:00 2001 From: satorunooshie Date: Mon, 6 Dec 2021 01:00:04 +0800 Subject: [PATCH] Fix insertMultipleStruct to insert null value under certain circumstances --- session_insert.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/session_insert.go b/session_insert.go index 43a4118b..9c144b93 100644 --- a/session_insert.go +++ b/session_insert.go @@ -143,6 +143,13 @@ func (session *Session) insertMultipleStruct(rowsSlicePtr interface{}) (int64, e if len(session.statement.ColumnMap) > 0 && !session.statement.ColumnMap.Contain(col.Name) { continue } + // !satorunooshie! set fieldValue as nil when column is nullable and zero-value + if _, ok := getFlagForColumn(session.statement.NullableMap, col); ok { + if col.Nullable && utils.IsValueZero(fieldValue) { + var nilValue *int + fieldValue = reflect.ValueOf(nilValue) + } + } if (col.IsCreated || col.IsUpdated) && session.statement.UseAutoTime { val, t, err := session.engine.nowTime(col) if err != nil {