This commit is contained in:
Lunny Xiao 2015-12-03 16:11:27 +08:00
parent 829677bc38
commit a8fba4d3d9
3 changed files with 13 additions and 8 deletions

View File

@ -1 +1 @@
xorm v0.4.4.1126
xorm v0.4.4.1203

View File

@ -3537,7 +3537,9 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
// --
var err error
if t.Kind() == reflect.Struct {
var isMap = t.Kind() == reflect.Map
var isStruct = t.Kind() == reflect.Struct
if isStruct {
table = session.Engine.TableInfo(bean)
session.Statement.RefTable = table
@ -3552,7 +3554,7 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
return 0, err
}
}
} else if t.Kind() == reflect.Map {
} else if isMap {
if session.Statement.RefTable == nil {
return 0, ErrTableNotFound
}
@ -3576,11 +3578,13 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
args = append(args, val)
var colName = col.Name
if isStruct {
session.afterClosures = append(session.afterClosures, func(bean interface{}) {
col := table.GetColumn(colName)
setColumnTime(bean, col, t)
})
}
}
//for update action to like "column = column + ?"
incColumns := session.Statement.getInc()
@ -3723,6 +3727,7 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
} else {
afterClosures := make([]func(interface{}), lenAfterClosures)
copy(afterClosures, session.afterClosures)
// FIXME: if bean is a map type, it will panic because map cannot be as map key
session.afterUpdateBeans[bean] = &afterClosures
}

View File

@ -17,7 +17,7 @@ import (
)
const (
Version string = "0.4.4.1126"
Version string = "0.4.4.1203"
)
func regDrvsNDialects() bool {