improved Sync2 method

This commit is contained in:
Lunny Xiao 2014-08-28 23:30:18 +08:00
parent fef024b600
commit af7dd2bcf7
1 changed files with 25 additions and 0 deletions

View File

@ -1081,8 +1081,11 @@ func (engine *Engine) Sync2(beans ...interface{}) error {
return err return err
} }
structTables := make([]*core.Table, 0)
for _, bean := range beans { for _, bean := range beans {
table := engine.autoMap(bean) table := engine.autoMap(bean)
structTables = append(structTables, table)
var oriTable *core.Table var oriTable *core.Table
for _, tb := range tables { for _, tb := range tables {
@ -1207,6 +1210,28 @@ func (engine *Engine) Sync2(beans ...interface{}) error {
} }
} }
} }
for _, table := range tables {
var oriTable *core.Table
for _, structTable := range structTables {
if table.Name == structTable.Name {
oriTable = structTable
break
}
}
if oriTable == nil {
//engine.LogWarnf("Table %s has no struct to mapping it", table.Name)
continue
}
for _, colName := range table.ColumnsSeq() {
if oriTable.GetColumn(colName) == nil {
engine.LogWarnf("Table %s has column %s but struct has not related field",
table.Name, colName)
}
}
}
return nil return nil
} }