From 3be6688cd1f8b178f2e7f80e67f7e50d81b53b61 Mon Sep 17 00:00:00 2001 From: miraclesu Date: Wed, 23 Mar 2016 21:18:54 +0800 Subject: [PATCH] orm: fix painc when pk is uint on ReadOrCreate --- orm/orm.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/orm/orm.go b/orm/orm.go index 38c89334..26ebb7c1 100644 --- a/orm/orm.go +++ b/orm/orm.go @@ -140,7 +140,14 @@ func (o *orm) ReadOrCreate(md interface{}, col1 string, cols ...string) (bool, i return (err == nil), id, err } - return false, ind.FieldByIndex(mi.fields.pk.fieldIndex).Int(), err + id, vid := int64(0), ind.FieldByIndex(mi.fields.pk.fieldIndex) + if mi.fields.pk.fieldType&IsPostiveIntegerField > 0 { + id = int64(vid.Uint()) + } else { + id = vid.Int() + } + + return false, id, err } // insert model data to database