Fix insertMultipleStruct to insert null value under certain circumstances

This commit is contained in:
satorunooshie 2021-12-06 01:00:04 +08:00 committed by satoru.kitaguchi
parent 4f8f829913
commit d3558f1e77
1 changed files with 7 additions and 0 deletions

View File

@ -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 {