Judge both type of struct and pointer in case of out-of-range
This commit is contained in:
parent
9e1c0ee31d
commit
e4f17e61d5
|
@ -392,11 +392,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 {
|
||||
|
|
Loading…
Reference in New Issue