diff --git a/base_test.go b/base_test.go index 800d4be7..7f617b46 100644 --- a/base_test.go +++ b/base_test.go @@ -162,7 +162,7 @@ func update(engine *Engine, t *testing.T) { } condi := Condi{"username": "zzz", "height": 0.0, "departname": ""} - _, err = engine.Table(&user).Id(1).Update(condi) + _, err = engine.Table(&user).Id(1).Update(&condi) if err != nil { t.Error(err) panic(err) diff --git a/session.go b/session.go index 6234e14a..7dd9c688 100644 --- a/session.go +++ b/session.go @@ -1410,7 +1410,7 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6 table = session.Engine.AutoMap(bean) session.Statement.RefTable = table colNames, args = BuildConditions(session.Engine, table, bean) - if table.Updated != "" { + if session.Statement.UseAutoTime && table.Updated != "" { colNames = append(colNames, session.Engine.Quote(table.Updated)+" = ?") args = append(args, time.Now()) } @@ -1421,13 +1421,13 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6 table = session.Statement.RefTable colNames = make([]string, 0) args = make([]interface{}, 0) - bValue := reflect.ValueOf(bean) + bValue := reflect.Indirect(reflect.ValueOf(bean)) for _, v := range bValue.MapKeys() { colNames = append(colNames, session.Engine.Quote(v.String())+" = ?") args = append(args, bValue.MapIndex(v).Interface()) } - if table.Updated != "" { + if session.Statement.UseAutoTime && table.Updated != "" { colNames = append(colNames, session.Engine.Quote(table.Updated)+" = ?") args = append(args, time.Now()) }