|
@@ -71,7 +71,7 @@ func formInsertTableRow(e any, tableRows *sql_tpl.TableRows) error {
|
|
|
for fieldName, mappingElement := range sqlMapping.MappingElement {
|
|
|
switch element := mappingElement.(type) {
|
|
|
case *MappingStruct:
|
|
|
- err := formInsertTableRow(element.FieldValueElem.Addr().Interface(), tableRows)
|
|
|
+ err := formInsertTableRow(element.FieldValueElem.Interface(), tableRows)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -85,7 +85,7 @@ func formInsertTableRow(e any, tableRows *sql_tpl.TableRows) error {
|
|
|
|
|
|
value := reflect.Zero(fieldType).Interface()
|
|
|
if fieldType.Kind() != reflect.Slice {
|
|
|
- if !element.FieldValueElem.IsZero() {
|
|
|
+ if element.FieldValueElem.IsValid() && !element.FieldValueElem.IsZero() {
|
|
|
value = element.FieldValueElem.Interface()
|
|
|
}
|
|
|
|
|
@@ -171,7 +171,7 @@ func formDeleteConditions(e any, conditions *sql_tpl.Conditions) error {
|
|
|
for _, mappingElement := range sqlMapping.MappingElement {
|
|
|
switch element := mappingElement.(type) {
|
|
|
case *MappingStruct:
|
|
|
- err := formDeleteConditions(element.FieldValueElem.Addr().Interface(), conditions)
|
|
|
+ err := formDeleteConditions(element.FieldValueElem.Interface(), conditions)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -182,7 +182,7 @@ func formDeleteConditions(e any, conditions *sql_tpl.Conditions) error {
|
|
|
}
|
|
|
|
|
|
|
|
|
- if element.FieldValueElem.IsZero() {
|
|
|
+ if !element.FieldValueElem.IsValid() || element.FieldValueElem.IsZero() {
|
|
|
return errors.New("键字段没有传值")
|
|
|
}
|
|
|
|
|
@@ -249,7 +249,7 @@ func formUpdateTableRowsAndConditions(e any, tableRows *sql_tpl.TableRows, condi
|
|
|
for fieldName, mappingElement := range sqlMapping.MappingElement {
|
|
|
switch element := mappingElement.(type) {
|
|
|
case *MappingStruct:
|
|
|
- err := formUpdateTableRowsAndConditions(element.FieldValueElem.Addr().Interface(), tableRows, conditions)
|
|
|
+ err := formUpdateTableRowsAndConditions(element.FieldValueElem.Interface(), tableRows, conditions)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -273,7 +273,7 @@ func formUpdateTableRowsAndConditions(e any, tableRows *sql_tpl.TableRows, condi
|
|
|
|
|
|
value := reflect.Zero(fieldType).Interface()
|
|
|
if fieldType.Kind() != reflect.Slice {
|
|
|
- if !element.FieldValueElem.IsZero() {
|
|
|
+ if element.FieldValueElem.IsValid() && !element.FieldValueElem.IsZero() {
|
|
|
value = element.FieldValueElem.Interface()
|
|
|
}
|
|
|
|