fix conflicts between Cols and updated (#725)
This commit is contained in:
parent
c29485f954
commit
3101e3bc44
|
@ -202,17 +202,19 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
|
||||||
table := session.statement.RefTable
|
table := session.statement.RefTable
|
||||||
|
|
||||||
if session.statement.UseAutoTime && table != nil && table.Updated != "" {
|
if session.statement.UseAutoTime && table != nil && table.Updated != "" {
|
||||||
colNames = append(colNames, session.engine.Quote(table.Updated)+" = ?")
|
if _, ok := session.statement.columnMap[strings.ToLower(table.Updated)]; !ok {
|
||||||
col := table.UpdatedColumn()
|
colNames = append(colNames, session.engine.Quote(table.Updated)+" = ?")
|
||||||
val, t := session.engine.NowTime2(col.SQLType.Name)
|
col := table.UpdatedColumn()
|
||||||
args = append(args, val)
|
val, t := session.engine.NowTime2(col.SQLType.Name)
|
||||||
|
args = append(args, val)
|
||||||
|
|
||||||
var colName = col.Name
|
var colName = col.Name
|
||||||
if isStruct {
|
if isStruct {
|
||||||
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
|
||||||
col := table.GetColumn(colName)
|
col := table.GetColumn(colName)
|
||||||
setColumnTime(bean, col, t)
|
setColumnTime(bean, col, t)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1153,3 +1153,20 @@ func TestNewUpdate(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.EqualValues(t, 0, af)
|
assert.EqualValues(t, 0, af)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateUpdate(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type PublicKeyUpdate struct {
|
||||||
|
Id int64
|
||||||
|
UpdatedUnix int64 `xorm:"updated"`
|
||||||
|
}
|
||||||
|
|
||||||
|
assertSync(t, new(PublicKeyUpdate))
|
||||||
|
|
||||||
|
cnt, err := testEngine.ID(1).Cols("updated_unix").Update(&PublicKeyUpdate{
|
||||||
|
UpdatedUnix: time.Now().Unix(),
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.EqualValues(t, 0, cnt)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue