From 5562169506a15583d6d0d136582b0d8a47aaa15c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 11 Apr 2018 18:28:53 +0800 Subject: [PATCH] fix update map with table name --- session_update_test.go | 18 +++++++++++++++++- statement.go | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/session_update_test.go b/session_update_test.go index 78f58df1..4183dc09 100644 --- a/session_update_test.go +++ b/session_update_test.go @@ -1198,7 +1198,7 @@ func TestUpdateMapContent(t *testing.T) { assert.EqualValues(t, 0, c1.Age) cnt, err = testEngine.Table(new(UpdateMapContent)).ID(c.Id).Update(map[string]interface{}{ - "age": 16, + "age": 16, "is_man": false, "gender": 2, }) @@ -1212,4 +1212,20 @@ func TestUpdateMapContent(t *testing.T) { assert.EqualValues(t, 16, c2.Age) assert.EqualValues(t, false, c2.IsMan) assert.EqualValues(t, 2, c2.Gender) + + cnt, err = testEngine.Table(testEngine.TableName(new(UpdateMapContent))).ID(c.Id).Update(map[string]interface{}{ + "age": 15, + "is_man": true, + "gender": 1, + }) + assert.NoError(t, err) + assert.EqualValues(t, 1, cnt) + + var c3 UpdateMapContent + has, err = testEngine.ID(c.Id).Get(&c3) + assert.NoError(t, err) + assert.True(t, has) + assert.EqualValues(t, 15, c3.Age) + assert.EqualValues(t, true, c3.IsMan) + assert.EqualValues(t, 1, c3.Gender) } diff --git a/statement.go b/statement.go index 15b9048a..a48f1d38 100644 --- a/statement.go +++ b/statement.go @@ -1143,7 +1143,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string, needLimit, n } func (statement *Statement) processIDParam() error { - if statement.idParam == nil { + if statement.idParam == nil || statement.RefTable == nil { return nil }