fix QueryRowsPartial getTaggedFieldValueMap func (#2884)

Co-authored-by: yongkun.xiong <weilone@vip.qq.com>
This commit is contained in:
YK.xiong
2023-03-11 15:28:09 +08:00
committed by GitHub
parent f77e2c9cfa
commit e735915d89
2 changed files with 112 additions and 1 deletions

View File

@@ -34,9 +34,20 @@ func getTaggedFieldValueMap(v reflect.Value) (map[string]any, error) {
result := make(map[string]any, size)
for i := 0; i < size; i++ {
if (rt.Field(i).Type.Kind() == reflect.Struct || rt.Field(i).Type.Kind() == reflect.Ptr) && rt.Field(i).Anonymous {
r, e := getTaggedFieldValueMap(reflect.Indirect(v).Field(i))
if e != nil {
return nil, e
}
for i2, i3 := range r {
result[i2] = i3
}
continue
}
key := parseTagName(rt.Field(i))
if len(key) == 0 {
return nil, nil
continue
}
valueField := reflect.Indirect(v).Field(i)