1
0
mirror of https://github.com/astaxie/beego.git synced 2025-07-03 17:20:18 +00:00

orm fix when use uint as pk

This commit is contained in:
slene
2013-08-30 12:32:05 +08:00
parent dc8f932009
commit 8f5ca303b5
6 changed files with 118 additions and 68 deletions

View File

@ -70,7 +70,11 @@ func (o *orm) Insert(md interface{}) (int64, error) {
}
if id > 0 {
if mi.fields.pk.auto {
ind.Field(mi.fields.pk.fieldIndex).SetInt(id)
if mi.fields.pk.fieldType&IsPostiveIntegerField > 0 {
ind.Field(mi.fields.pk.fieldIndex).SetUint(uint64(id))
} else {
ind.Field(mi.fields.pk.fieldIndex).SetInt(id)
}
}
}
return id, nil
@ -93,7 +97,11 @@ func (o *orm) Delete(md interface{}) (int64, error) {
}
if num > 0 {
if mi.fields.pk.auto {
ind.Field(mi.fields.pk.fieldIndex).SetInt(0)
if mi.fields.pk.fieldType&IsPostiveIntegerField > 0 {
ind.Field(mi.fields.pk.fieldIndex).SetUint(0)
} else {
ind.Field(mi.fields.pk.fieldIndex).SetInt(0)
}
}
}
return num, nil