Support Get time.Time

This commit is contained in:
Lunny Xiao 2021-06-09 10:15:42 +08:00
parent a5030dc7a4
commit fcb1a47037
2 changed files with 24 additions and 1 deletions

View File

@ -766,3 +766,25 @@ func TestGetNil(t *testing.T) {
assert.True(t, errors.Is(err, xorm.ErrObjectIsNil)) assert.True(t, errors.Is(err, xorm.ErrObjectIsNil))
assert.False(t, has) assert.False(t, has)
} }
func TestGetTime(t *testing.T) {
type GetTimeStruct struct {
Id int64
CreateTime time.Time
}
assert.NoError(t, PrepareEngine())
assertSync(t, new(GetTimeStruct))
var gts = GetTimeStruct{
CreateTime: time.Now(),
}
_, err := testEngine.Insert(&gts)
assert.NoError(t, err)
var gn time.Time
has, err := testEngine.Table("get_time_struct").Cols(colMapper.Obj2Table("CreateTime")).Get(&gn)
assert.NoError(t, err)
assert.True(t, has)
assert.EqualValues(t, gts.CreateTime.Format(time.RFC3339), gn.Format(time.RFC3339))
}

View File

@ -50,7 +50,8 @@ func (session *Session) get(bean interface{}) (bool, error) {
return false, ErrObjectIsNil return false, ErrObjectIsNil
} }
if beanValue.Elem().Kind() == reflect.Struct { _, isTimeStruct := bean.(*time.Time)
if beanValue.Elem().Kind() == reflect.Struct && !isTimeStruct {
if err := session.statement.SetRefBean(bean); err != nil { if err := session.statement.SetRefBean(bean); err != nil {
return false, err return false, err
} }