diff --git a/convert.go b/convert.go index c4774d97..1be0852d 100644 --- a/convert.go +++ b/convert.go @@ -40,6 +40,12 @@ func asString(src interface{}) string { return v case []byte: 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) switch rv.Kind() { @@ -401,6 +407,7 @@ func convertAssignV(dpv reflect.Value, src interface{}, originalLocation, conver dv.SetFloat(f64) return nil case reflect.String: + fmt.Println("=====", src) dv.SetString(asString(src)) return nil } diff --git a/integrations/session_get_test.go b/integrations/session_get_test.go index 99db98fc..f60a7f7b 100644 --- a/integrations/session_get_test.go +++ b/integrations/session_get_test.go @@ -719,7 +719,7 @@ func TestCustomTypes(t *testing.T) { has, err := testEngine.Table(new(TestCustomizeStruct)).ID(s.Id).Cols("name").Get(&name) assert.NoError(t, err) assert.True(t, has) - assert.EqualValues(t, "test", name) + assert.EqualValues(t, "test", string(name)) var age MyInt has, err = testEngine.Table(new(TestCustomizeStruct)).ID(s.Id).Select("age").Get(&age) diff --git a/scan.go b/scan.go index b23785d8..ce1fcf98 100644 --- a/scan.go +++ b/scan.go @@ -57,6 +57,7 @@ func genScanResultsByBeanNullable(bean interface{}, originalLocation, convertedL tp := reflect.TypeOf(bean).Elem() switch tp.Kind() { case reflect.String: + fmt.Println("=====", tp) return &sql.NullString{}, true, nil case reflect.Int64: return &sql.NullInt64{}, true, nil