1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-22 17:50:58 +00:00

orm: insert specified values for insertMulti

This commit is contained in:
miraclesu 2016-03-26 21:51:05 +08:00
parent e0a36fb61e
commit 3ca44071e6
2 changed files with 21 additions and 6 deletions

View File

@ -386,16 +386,14 @@ func (d *dbBase) InsertMulti(q dbQuerier, mi *modelInfo, sind reflect.Value, bul
// } // }
if i == 1 { if i == 1 {
vus, err := d.collectValues(mi, ind, mi.fields.dbcols, true, true, &names, tz) vus, err := d.collectValues(mi, ind, mi.fields.dbcols, false, true, &names, tz)
if err != nil { if err != nil {
return cnt, err return cnt, err
} }
values = make([]interface{}, bulk*len(vus)) values = make([]interface{}, bulk*len(vus))
nums += copy(values, vus) nums += copy(values, vus)
} else { } else {
vus, err := d.collectValues(mi, ind, mi.fields.dbcols, false, true, nil, tz)
vus, err := d.collectValues(mi, ind, mi.fields.dbcols, true, true, nil, tz)
if err != nil { if err != nil {
return cnt, err return cnt, err
} }

View File

@ -2032,9 +2032,26 @@ func TestInsertAuto(t *testing.T) {
Email: "auto@gmail.com", Email: "auto@gmail.com",
} }
sid, err := dORM.Insert(su) nid, err := dORM.Insert(su)
throwFail(t, err) throwFail(t, err)
throwFail(t, AssertIs(id, sid)) throwFail(t, AssertIs(nid, id))
users := []User{
{ID: int(id + 100), UserName: "auto_100"},
{ID: int(id + 110), UserName: "auto_110"},
{ID: int(id + 120), UserName: "auto_120"},
}
num, err := dORM.InsertMulti(100, users)
throwFail(t, err)
throwFail(t, AssertIs(num, 3))
u = &User{
UserName: "auto_121",
}
nid, err = dORM.Insert(u)
throwFail(t, err)
throwFail(t, AssertIs(nid, id+120+1))
} }
func TestUintPk(t *testing.T) { func TestUintPk(t *testing.T) {