|
@@ -99,6 +99,11 @@ type MappingTypesAndValues struct {
|
|
|
}
|
|
|
|
|
|
func parseSqlMappingElement(field reflect.StructField, fieldValue reflect.Value) (any, error) {
|
|
|
+ sqlMappingTag := field.Tag.Get(sqlMappingTagKey)
|
|
|
+ if sqlMappingTag == sqlMappingIgnore {
|
|
|
+ return nil, nil
|
|
|
+ }
|
|
|
+
|
|
|
fieldValueTypeElem := field.Type
|
|
|
if field.Type.Kind() == reflect.Ptr {
|
|
|
fieldValueTypeElem = field.Type.Elem()
|
|
@@ -107,6 +112,10 @@ func parseSqlMappingElement(field reflect.StructField, fieldValue reflect.Value)
|
|
|
fieldValueElem := fieldValue
|
|
|
if fieldValue.Kind() == reflect.Ptr {
|
|
|
if !fieldValue.IsValid() || fieldValue.IsNil() {
|
|
|
+ if !fieldValue.CanSet() {
|
|
|
+ return nil, nil
|
|
|
+ }
|
|
|
+
|
|
|
fieldValue.Set(reflect.New(fieldValueTypeElem).Elem().Addr())
|
|
|
}
|
|
|
|
|
@@ -145,15 +154,10 @@ func parseSqlMappingElement(field reflect.StructField, fieldValue reflect.Value)
|
|
|
sqlColumn.CanUpdate = false
|
|
|
}
|
|
|
|
|
|
- sqlMappingTag, ok := field.Tag.Lookup(sqlMappingTagKey)
|
|
|
- if !ok {
|
|
|
+ if strutils.IsStringEmpty(sqlMappingTag) {
|
|
|
return sqlColumn, nil
|
|
|
}
|
|
|
|
|
|
- if sqlMappingTag == sqlMappingIgnore {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
sqlMappingParts := strings.Split(sqlMappingTag, sqlMappingTagPartSeparator)
|
|
|
if sqlMappingParts != nil || len(sqlMappingParts) != 0 {
|
|
|
for _, sqlMappingPart := range sqlMappingParts {
|