This commit is contained in:
Lunny Xiao 2021-07-05 14:16:02 +08:00
parent d90767bcb7
commit dfdef4b68f
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
3 changed files with 9 additions and 1 deletions

View File

@ -40,6 +40,12 @@ func asString(src interface{}) string {
return v return v
case []byte: case []byte:
return string(v) return string(v)
case *sql.NullString:
return v.String
case *sql.NullInt32:
return fmt.Sprintf("%d", v.Int32)
case *sql.NullInt64:
return fmt.Sprintf("%d", v.Int64)
} }
rv := reflect.ValueOf(src) rv := reflect.ValueOf(src)
switch rv.Kind() { switch rv.Kind() {
@ -401,6 +407,7 @@ func convertAssignV(dpv reflect.Value, src interface{}, originalLocation, conver
dv.SetFloat(f64) dv.SetFloat(f64)
return nil return nil
case reflect.String: case reflect.String:
fmt.Println("=====", src)
dv.SetString(asString(src)) dv.SetString(asString(src))
return nil return nil
} }

View File

@ -719,7 +719,7 @@ func TestCustomTypes(t *testing.T) {
has, err := testEngine.Table(new(TestCustomizeStruct)).ID(s.Id).Cols("name").Get(&name) has, err := testEngine.Table(new(TestCustomizeStruct)).ID(s.Id).Cols("name").Get(&name)
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, has) assert.True(t, has)
assert.EqualValues(t, "test", name) assert.EqualValues(t, "test", string(name))
var age MyInt var age MyInt
has, err = testEngine.Table(new(TestCustomizeStruct)).ID(s.Id).Select("age").Get(&age) has, err = testEngine.Table(new(TestCustomizeStruct)).ID(s.Id).Select("age").Get(&age)

View File

@ -57,6 +57,7 @@ func genScanResultsByBeanNullable(bean interface{}, originalLocation, convertedL
tp := reflect.TypeOf(bean).Elem() tp := reflect.TypeOf(bean).Elem()
switch tp.Kind() { switch tp.Kind() {
case reflect.String: case reflect.String:
fmt.Println("=====", tp)
return &sql.NullString{}, true, nil return &sql.NullString{}, true, nil
case reflect.Int64: case reflect.Int64:
return &sql.NullInt64{}, true, nil return &sql.NullInt64{}, true, nil