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