Fix update with Alias
This commit is contained in:
parent
33fc33b2f5
commit
dcad231b8a
|
@ -377,9 +377,14 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
|
||||||
return 0, errors.New("No content found to be updated")
|
return 0, errors.New("No content found to be updated")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var tableAlias = session.engine.Quote(tableName)
|
||||||
|
if session.statement.TableAlias != "" {
|
||||||
|
tableAlias = fmt.Sprintf("%s AS %s", tableAlias, session.statement.TableAlias)
|
||||||
|
}
|
||||||
|
|
||||||
sqlStr = fmt.Sprintf("UPDATE %v%v SET %v %v",
|
sqlStr = fmt.Sprintf("UPDATE %v%v SET %v %v",
|
||||||
top,
|
top,
|
||||||
session.engine.Quote(tableName),
|
tableAlias,
|
||||||
strings.Join(colNames, ", "),
|
strings.Join(colNames, ", "),
|
||||||
condSQL)
|
condSQL)
|
||||||
|
|
||||||
|
|
|
@ -1421,3 +1421,34 @@ func TestUpdateExprs(t *testing.T) {
|
||||||
assert.EqualValues(t, 2, ue.NumIssues)
|
assert.EqualValues(t, 2, ue.NumIssues)
|
||||||
assert.EqualValues(t, "lunny xiao", ue.Name)
|
assert.EqualValues(t, "lunny xiao", ue.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateAlias(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type UpdateAlias struct {
|
||||||
|
Id int64
|
||||||
|
NumIssues int
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
assertSync(t, new(UpdateAlias))
|
||||||
|
|
||||||
|
_, err := testEngine.Insert(&UpdateAlias{
|
||||||
|
NumIssues: 1,
|
||||||
|
Name: "lunny",
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
_, err = testEngine.Alias("ua").Where("ua.id = ?", 1).Update(&UpdateAlias{
|
||||||
|
NumIssues: 2,
|
||||||
|
Name: "lunny xiao",
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
var ue UpdateAlias
|
||||||
|
has, err := testEngine.Get(&ue)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.True(t, has)
|
||||||
|
assert.EqualValues(t, 2, ue.NumIssues)
|
||||||
|
assert.EqualValues(t, "lunny xiao", ue.Name)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue