|
@@ -188,11 +188,17 @@ func formInsertTableRow(fields []sql_mapping.Field, createTime time.Time) *sql.T
|
|
|
|
|
|
for _, field := range fields {
|
|
|
fieldValue := reflect.ValueOf(field.Value)
|
|
|
+
|
|
|
if (field.FieldName == createdTimeFieldName || field.FieldName == lastUpdatedTimeFieldName) &&
|
|
|
reflectutils.IsValueTime(fieldValue) && fieldValue.IsZero() {
|
|
|
field.Value = createTime
|
|
|
}
|
|
|
|
|
|
+ if field.FieldName != createdTimeFieldName && field.FieldName != lastUpdatedTimeFieldName &&
|
|
|
+ reflectutils.IsValueTime(fieldValue) && fieldValue.IsZero() {
|
|
|
+ field.Value = nil
|
|
|
+ }
|
|
|
+
|
|
|
tableRow.Add(field.ColumnName, field.Value)
|
|
|
}
|
|
|
|
|
@@ -301,15 +307,21 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
|
|
|
}
|
|
|
|
|
|
fieldValue := reflect.ValueOf(field.Value)
|
|
|
+
|
|
|
if field.FieldName == lastUpdatedTimeFieldName &&
|
|
|
reflectutils.IsValueTime(fieldValue) && fieldValue.IsZero() {
|
|
|
field.Value = now
|
|
|
}
|
|
|
|
|
|
+ if field.FieldName != lastUpdatedTimeFieldName &&
|
|
|
+ reflectutils.IsValueTime(fieldValue) && fieldValue.IsZero() {
|
|
|
+ field.Value = nil
|
|
|
+ }
|
|
|
+
|
|
|
if field.IsKey {
|
|
|
conditions.Equal(field.ColumnName, field.Value)
|
|
|
} else {
|
|
|
- if reflect.ValueOf(field.Value).IsZero() && !field.CanUpdateClear {
|
|
|
+ if (field.Value == nil || reflect.ValueOf(field.Value).IsZero()) && !field.CanUpdateClear {
|
|
|
continue
|
|
|
}
|
|
|
|