From 56dc9bf6220381efb05864c544d252a646677a90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?maxin=5B=E9=A9=AC=E9=91=AB=5D?= Date: Mon, 25 Apr 2016 15:51:12 +0800 Subject: [PATCH] add return ErrMultiRows --- orm/orm_queryset.go | 4 ++++ orm/orm_test.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/orm/orm_queryset.go b/orm/orm_queryset.go index f1aa45c8..575f62ae 100644 --- a/orm/orm_queryset.go +++ b/orm/orm_queryset.go @@ -200,6 +200,10 @@ func (o *querySet) One(container interface{}, cols ...string) error { if num == 0 { return ErrNoRows } + + if num > 1 { + return ErrMultiRows + } return nil } diff --git a/orm/orm_test.go b/orm/orm_test.go index ff7d2eae..d9fd7d51 100644 --- a/orm/orm_test.go +++ b/orm/orm_test.go @@ -975,11 +975,13 @@ func TestOne(t *testing.T) { err = qs.OrderBy("Id").Limit(1).One(&user) throwFailNow(t, err) throwFail(t, AssertIs(user.UserName, "slene")) + throwFail(t, AssertNot(err, ErrMultiRows)) user = User{} err = qs.OrderBy("-Id").Limit(100).One(&user) throwFailNow(t, err) throwFail(t, AssertIs(user.UserName, "nobody")) + throwFail(t, AssertNot(err, ErrMultiRows)) err = qs.Filter("user_name", "nothing").One(&user) throwFail(t, AssertIs(err, ErrNoRows))