From 17ee4be6c1d0cf7cee4406dd3ad478adbcfdbc45 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 24 Feb 2018 17:08:34 +0800 Subject: [PATCH] fix findandcount bug (#853) --- session_find.go | 4 ++++ session_find_test.go | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/session_find.go b/session_find.go index d4f2a1e6..f9b3777f 100644 --- a/session_find.go +++ b/session_find.go @@ -52,6 +52,10 @@ func (session *Session) FindAndCount(rowsSlicePtr interface{}, condiBean ...inte } session.autoResetStatement = true + if session.statement.selectStr != "" { + session.statement.selectStr = "" + } + return session.Count(reflect.New(sliceElementType).Interface()) } diff --git a/session_find_test.go b/session_find_test.go index 4088e05e..20c15362 100644 --- a/session_find_test.go +++ b/session_find_test.go @@ -561,4 +561,11 @@ func TestFindAndCountOneFunc(t *testing.T) { assert.NoError(t, err) assert.EqualValues(t, 1, len(results)) assert.EqualValues(t, 1, cnt) + + results = make([]FindAndCountStruct, 0, 1) + cnt, err = testEngine.Where("msg = ?", true).Select("id, content, msg"). + Limit(1).FindAndCount(&results) + assert.NoError(t, err) + assert.EqualValues(t, 1, len(results)) + assert.EqualValues(t, 1, cnt) }