bug fxied for Sync2 when share the same struct between different tables

This commit is contained in:
Lunny Xiao 2016-03-10 09:39:25 +08:00
parent 1045aa020f
commit bfb5784ec5
4 changed files with 11 additions and 7 deletions

View File

@ -1 +1 @@
xorm v0.5.2.0306 xorm v0.5.2.0310

View File

@ -523,7 +523,8 @@ func (session *Session) Exec(sqlStr string, args ...interface{}) (sql.Result, er
// this function create a table according a bean // this function create a table according a bean
func (session *Session) CreateTable(bean interface{}) error { func (session *Session) CreateTable(bean interface{}) error {
session.Statement.RefTable = session.Engine.TableInfo(bean) v := rValue(bean)
session.Statement.RefTable = session.Engine.mapType(v)
defer session.resetStatement() defer session.resetStatement()
if session.IsAutoClose { if session.IsAutoClose {
@ -535,7 +536,8 @@ func (session *Session) CreateTable(bean interface{}) error {
// create indexes // create indexes
func (session *Session) CreateIndexes(bean interface{}) error { func (session *Session) CreateIndexes(bean interface{}) error {
session.Statement.RefTable = session.Engine.TableInfo(bean) v := rValue(bean)
session.Statement.RefTable = session.Engine.mapType(v)
defer session.resetStatement() defer session.resetStatement()
if session.IsAutoClose { if session.IsAutoClose {
@ -554,7 +556,8 @@ func (session *Session) CreateIndexes(bean interface{}) error {
// create uniques // create uniques
func (session *Session) CreateUniques(bean interface{}) error { func (session *Session) CreateUniques(bean interface{}) error {
session.Statement.RefTable = session.Engine.TableInfo(bean) v := rValue(bean)
session.Statement.RefTable = session.Engine.mapType(v)
defer session.resetStatement() defer session.resetStatement()
if session.IsAutoClose { if session.IsAutoClose {
@ -4036,7 +4039,8 @@ func (s *Session) Sync2(beans ...interface{}) error {
structTables := make([]*core.Table, 0) structTables := make([]*core.Table, 0)
for _, bean := range beans { for _, bean := range beans {
table := engine.TableInfo(bean) v := rValue(bean)
table := engine.mapType(v)
structTables = append(structTables, table) structTables = append(structTables, table)
var oriTable *core.Table var oriTable *core.Table

View File

@ -857,7 +857,7 @@ func (statement *Statement) Cols(columns ...string) *Statement {
} }
newColumns := statement.col2NewColsWithQuote(columns...) newColumns := statement.col2NewColsWithQuote(columns...)
fmt.Println("=====", columns, newColumns, cols) //fmt.Println("=====", columns, newColumns, cols)
statement.ColumnStr = strings.Join(newColumns, ", ") statement.ColumnStr = strings.Join(newColumns, ", ")
statement.ColumnStr = strings.Replace(statement.ColumnStr, statement.Engine.quote("*"), "*", -1) statement.ColumnStr = strings.Replace(statement.ColumnStr, statement.Engine.quote("*"), "*", -1)
return statement return statement

View File

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