fix update map with table name

This commit is contained in:
Lunny Xiao 2018-04-11 18:28:53 +08:00
parent bfdf773629
commit 5562169506
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
2 changed files with 18 additions and 2 deletions

View File

@ -1198,7 +1198,7 @@ func TestUpdateMapContent(t *testing.T) {
assert.EqualValues(t, 0, c1.Age) assert.EqualValues(t, 0, c1.Age)
cnt, err = testEngine.Table(new(UpdateMapContent)).ID(c.Id).Update(map[string]interface{}{ cnt, err = testEngine.Table(new(UpdateMapContent)).ID(c.Id).Update(map[string]interface{}{
"age": 16, "age": 16,
"is_man": false, "is_man": false,
"gender": 2, "gender": 2,
}) })
@ -1212,4 +1212,20 @@ func TestUpdateMapContent(t *testing.T) {
assert.EqualValues(t, 16, c2.Age) assert.EqualValues(t, 16, c2.Age)
assert.EqualValues(t, false, c2.IsMan) assert.EqualValues(t, false, c2.IsMan)
assert.EqualValues(t, 2, c2.Gender) 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)
} }

View File

@ -1143,7 +1143,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string, needLimit, n
} }
func (statement *Statement) processIDParam() error { func (statement *Statement) processIDParam() error {
if statement.idParam == nil { if statement.idParam == nil || statement.RefTable == nil {
return nil return nil
} }