diff --git a/engine.go b/engine.go index 2499d494..6f7c3a32 100644 --- a/engine.go +++ b/engine.go @@ -481,7 +481,9 @@ func (engine *Engine) mapType(v reflect.Value) *Table { table := engine.newTable() method := v.MethodByName("TableName") if !method.IsValid() { - method = v.Addr().MethodByName("TableName") + if v.CanAddr() { + method = v.Addr().MethodByName("TableName") + } } if method.IsValid() { params := []reflect.Value{} diff --git a/session.go b/session.go index 078903a5..2298e839 100644 --- a/session.go +++ b/session.go @@ -2934,7 +2934,7 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6 session.Engine.Quote(table.Version)+" = "+session.Engine.Quote(table.Version)+" + 1", condition) - verValue = table.VersionColumn().ValueOf(bean) + verValue = table.VersionColumn().ValueOf(bean) //if err != nil { // return 0, err //} diff --git a/statement.go b/statement.go index 773dd378..713e8637 100644 --- a/statement.go +++ b/statement.go @@ -523,6 +523,9 @@ func (statement *Statement) Cols(columns ...string) *Statement { statement.columnMap[strings.ToLower(nc)] = true } statement.ColumnStr = statement.Engine.Quote(strings.Join(newColumns, statement.Engine.Quote(", "))) + if strings.Contains(statement.ColumnStr, ".") { + statement.ColumnStr = strings.Replace(statement.ColumnStr, ".", statement.Engine.Quote("."), -1) + } return statement }