diff --git a/internal/utils/zero.go b/internal/utils/zero.go index 5415fc15..e198b612 100644 --- a/internal/utils/zero.go +++ b/internal/utils/zero.go @@ -50,6 +50,9 @@ func IsZero(k interface{}) bool { } func IsValueZero(v reflect.Value) bool { + if IsZero(v) { + return true + } if IsZero(v.Interface()) { return true } diff --git a/session_insert.go b/session_insert.go index bafb517d..12483aa3 100644 --- a/session_insert.go +++ b/session_insert.go @@ -567,7 +567,7 @@ func (session *Session) genInsertColumns(bean interface{}) ([]string, []interfac } fieldValue := *fieldValuePtr - if col.IsAutoIncrement && fieldValue.IsZero() { + if col.IsAutoIncrement && utils.IsValueZero(fieldValue) { continue } diff --git a/session_update.go b/session_update.go index 25103e87..dadfaaca 100644 --- a/session_update.go +++ b/session_update.go @@ -473,7 +473,7 @@ func (session *Session) genUpdateColumns(bean interface{}) ([]string, []interfac } fieldValue := *fieldValuePtr - if col.IsAutoIncrement && fieldValue.IsZero() { + if col.IsAutoIncrement && utils.IsValueZero(fieldValue) { continue }