diff --git a/session_find.go b/session_find.go index b5fd0cd3..226be5bc 100644 --- a/session_find.go +++ b/session_find.go @@ -398,11 +398,12 @@ func (session *Session) cacheFind(t reflect.Type, sqlStr string, rowsSlicePtr in bean := cacher.GetBean(tableName, sid) // fix issue #894 - ckt := t - if ckt.Kind() == reflect.Ptr { - ckt = t.Elem() + ckb := reflect.ValueOf(bean).Elem().Type() + ht := ckb == t + if !ht && t.Kind() == reflect.Ptr { + ht = t.Elem() == ckb } - if bean == nil || reflect.ValueOf(bean).Elem().Type() != ckt { + if bean == nil || !ht { ides = append(ides, id) ididxes[sid] = idx } else {