diff --git a/session_iterate.go b/session_iterate.go index 1e484d85..b47150a8 100644 --- a/session_iterate.go +++ b/session_iterate.go @@ -87,14 +87,14 @@ func (session *Session) bufferIterate(bean interface{}, fun IterFunc) error { idx++ } + if slice.Elem().Len() == 0 || idx == limit { + break + } + start = start + slice.Elem().Len() if limit > 0 && idx+bufferSize > limit { bufferSize = limit - idx } - - if bufferSize <= 0 || slice.Elem().Len() < bufferSize || idx == limit { - break - } } return nil