From e95b3bc80771c393576bfd5d5726e40560d2fae7 Mon Sep 17 00:00:00 2001 From: Nash Tsai Date: Thu, 2 Jan 2014 12:49:02 +0800 Subject: [PATCH] fixed time struct conversion error --- session.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/session.go b/session.go index a9bd4470..1a5474ec 100644 --- a/session.go +++ b/session.go @@ -1477,12 +1477,12 @@ func (session *Session) row2Bean(rows *sql.Rows, fields []string, fieldsCount in hasAssigned = true fieldValue.SetUint(uint64(vv.Int())) } - //Currently only support Time type case reflect.Struct: if fieldType == reflect.TypeOf(c_TIME_DEFAULT) { if rawValueType == reflect.TypeOf(c_TIME_DEFAULT) { hasAssigned = true - fieldValue.Set(rawValue) + session.Engine.LogDebug("fieldValue:", fieldValue, "|rawValue:", rawValue, "|vv:", vv) + fieldValue.Set(vv) } } else if session.Statement.UseCascade { table := session.Engine.autoMapType(fieldValue.Type()) @@ -1533,7 +1533,8 @@ func (session *Session) row2Bean(rows *sql.Rows, fields []string, fieldsCount in case reflect.TypeOf(&c_TIME_DEFAULT): if rawValueType == reflect.TypeOf(c_TIME_DEFAULT) { hasAssigned = true - fieldValue.Set(reflect.ValueOf(&rawValue)) + var x time.Time = rawValue.Interface().(time.Time) + fieldValue.Set(reflect.ValueOf(&x)) } case reflect.TypeOf(&c_FLOAT64_DEFAULT): if rawValueType.Kind() == reflect.Float64 {