From a8fba4d3d9f91edaf3d7cd51bbcb893e5f6ba7e8 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 3 Dec 2015 16:11:27 +0800 Subject: [PATCH] resolved #312 --- VERSION | 2 +- session.go | 17 +++++++++++------ xorm.go | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/VERSION b/VERSION index 8b43e1ae..b8e352cf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -xorm v0.4.4.1126 +xorm v0.4.4.1203 diff --git a/session.go b/session.go index 0dfab59a..07d3af1e 100644 --- a/session.go +++ b/session.go @@ -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,10 +3578,12 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6 args = append(args, val) var colName = col.Name - session.afterClosures = append(session.afterClosures, func(bean interface{}) { - col := table.GetColumn(colName) - setColumnTime(bean, col, t) - }) + 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 + ?" @@ -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 } diff --git a/xorm.go b/xorm.go index 88d23b81..71bfbfd1 100644 --- a/xorm.go +++ b/xorm.go @@ -17,7 +17,7 @@ import ( ) const ( - Version string = "0.4.4.1126" + Version string = "0.4.4.1203" ) func regDrvsNDialects() bool {