From 14dda73b9b5c6a3a33259bb346a6fd666e83478d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 23 Mar 2020 21:44:52 +0800 Subject: [PATCH] Fix find and count bug --- internal/statements/statement.go | 2 +- session_find_test.go | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/statements/statement.go b/internal/statements/statement.go index af94a9d9..22625650 100644 --- a/internal/statements/statement.go +++ b/internal/statements/statement.go @@ -903,7 +903,7 @@ func (statement *Statement) BuildConds(table *schemas.Table, bean interface{}, i } func (statement *Statement) mergeConds(bean interface{}) error { - if !statement.NoAutoCondition { + if !statement.NoAutoCondition && statement.RefTable != nil { var addedTableName = (len(statement.JoinStr) > 0) autoCond, err := statement.BuildConds(statement.RefTable, bean, true, true, false, true, addedTableName) if err != nil { diff --git a/session_find_test.go b/session_find_test.go index c16d0a1b..cc933da7 100644 --- a/session_find_test.go +++ b/session_find_test.go @@ -519,10 +519,17 @@ func TestFindAndCountOneFunc(t *testing.T) { results = make([]FindAndCountStruct, 0, 1) cnt, err = testEngine.Where("msg = ?", true).Desc("id"). - Limit(1).FindAndCount(&results) + Limit(1).Cols("content").FindAndCount(&results) assert.NoError(t, err) assert.EqualValues(t, 1, len(results)) assert.EqualValues(t, 1, cnt) + + ids := make([]int64, 0, 2) + tableName := testEngine.GetTableMapper().Obj2Table("FindAndCountStruct") + cnt, err = testEngine.Table(tableName).Limit(1).Cols("id").FindAndCount(&ids) + assert.NoError(t, err) + assert.EqualValues(t, 1, len(ids)) + assert.EqualValues(t, 2, cnt) } type FindMapDevice struct { -- 2.40.1