From de52b3b0a46d92e5599164fde9fbb485785e4788 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 8 Aug 2021 09:42:31 +0800 Subject: [PATCH 1/2] Fix wrong comment --- session.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/session.go b/session.go index 304d1079..33ef7b05 100644 --- a/session.go +++ b/session.go @@ -34,7 +34,7 @@ type ErrFieldIsNotExist struct { } func (e ErrFieldIsNotExist) Error() string { - return fmt.Sprintf("field %s is not valid on table %s", e.FieldName, e.TableName) + return fmt.Sprintf("field %s is not exist on table %s", e.FieldName, e.TableName) } // ErrFieldIsNotValid is not valid -- 2.40.1 From 1bdb66b690a90d2dcfabba1357388f9e9b3db9c4 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 8 Aug 2021 10:13:36 +0800 Subject: [PATCH 2/2] Fix wrong warn log --- integrations/session_find_test.go | 40 +++++++++++++++++++++++++++++++ session.go | 7 +++--- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/integrations/session_find_test.go b/integrations/session_find_test.go index 80f3b72c..1cbf5e42 100644 --- a/integrations/session_find_test.go +++ b/integrations/session_find_test.go @@ -1045,3 +1045,43 @@ func TestUpdateFind(t *testing.T) { err = session.Where("id = ?", tuf.Id).Find(&tufs) assert.NoError(t, err) } + +func TestFindAnonymousStruct(t *testing.T) { + type FindAnonymousStruct struct { + Id int64 + Name string + Age int + IsMan bool + } + + assert.NoError(t, PrepareEngine()) + assertSync(t, new(FindAnonymousStruct)) + + cnt, err := testEngine.Insert(&FindAnonymousStruct{ + Name: "xlw", + Age: 42, + IsMan: true, + }) + assert.EqualValues(t, 1, cnt) + assert.NoError(t, err) + + var findRes = make([]struct { + Id int64 + Name string + }, 0) + err = testEngine.Table(new(FindAnonymousStruct)).Find(&findRes) + assert.NoError(t, err) + assert.EqualValues(t, 1, len(findRes)) + assert.EqualValues(t, 1, findRes[0].Id) + assert.EqualValues(t, "xlw", findRes[0].Name) + + findRes = make([]struct { + Id int64 + Name string + }, 0) + err = testEngine.Select("`id`,`name`").Table(new(FindAnonymousStruct)).Find(&findRes) + assert.NoError(t, err) + assert.EqualValues(t, 1, len(findRes)) + assert.EqualValues(t, 1, findRes[0].Id) + assert.EqualValues(t, "xlw", findRes[0].Name) +} diff --git a/session.go b/session.go index 33ef7b05..339aa73f 100644 --- a/session.go +++ b/session.go @@ -677,10 +677,11 @@ func (session *Session) slice2Bean(scanResults []interface{}, fields []string, b col, fieldValue, err := session.getField(dataStruct, table, colName, idx) if err != nil { - if _, ok := err.(ErrFieldIsNotValid); !ok { - session.engine.logger.Warnf("%v", err) + if _, ok := err.(ErrFieldIsNotExist); ok { + continue + } else { + return nil, err } - continue } if fieldValue == nil { continue -- 2.40.1