From a9eb28a00e4b93817906eac5c8af2a566e8c73af Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 7 Jul 2013 16:31:58 +0800 Subject: [PATCH] fix insert err bug --- session.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/session.go b/session.go index 784f48fb..fa95d50b 100644 --- a/session.go +++ b/session.go @@ -582,7 +582,11 @@ func (session *Session) Insert(beans ...interface{}) (int64, error) { lastId, err = session.InsertMulti(bean) if err != nil { if !isInTransaction { - err = session.Rollback() + err1 := session.Rollback() + if err1 == nil { + return lastId, err + } + err = err1 } return lastId, err } @@ -592,7 +596,11 @@ func (session *Session) Insert(beans ...interface{}) (int64, error) { lastId, err = session.InsertOne(sliceValue.Index(i).Interface()) if err != nil { if !isInTransaction { - err = session.Rollback() + err1 := session.Rollback() + if err1 == nil { + return lastId, err + } + err = err1 } return lastId, err } @@ -602,7 +610,11 @@ func (session *Session) Insert(beans ...interface{}) (int64, error) { lastId, err = session.InsertOne(bean) if err != nil { if !isInTransaction { - err = session.Rollback() + err1 := session.Rollback() + if err1 == nil { + return lastId, err + } + err = err1 } return lastId, err }