Skip to content

Commit ea49f76

Browse files
authored
Update repository.go
Signed-off-by: li.zhang <294638057@qq.com>
1 parent 68e723a commit ea49f76

1 file changed

Lines changed: 33 additions & 25 deletions

File tree

repository.go

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -130,31 +130,39 @@ func (r *Repository[T, O, M]) Create(ctx context.Context, value convertor.Into[[
130130
return
131131
}
132132
func (r *Repository[T, O, M]) Upsert(ctx context.Context, value convertor.Into[T], modifiers ...M) (err error) {
133-
134-
var (
135-
val T
136-
cnt int64
137-
sess *xorm.Session
138-
)
139-
if sess, err = r.setupSession(ctx, modifiers...); err != nil {
140-
return
141-
}
142-
if cnt, err = sess.Count(&val); err != nil {
143-
return
144-
}
145-
if cnt == 0 {
146-
if _, err = sess.Insert(value); err != nil {
147-
return
148-
}
149-
return
150-
}
151-
if val, err = value.Into(); err != nil {
152-
return
153-
}
154-
if cnt, err = sess.Update(val); err != nil {
155-
return
156-
}
157-
return
133+
var (
134+
val T
135+
cnt int64
136+
)
137+
{
138+
var sess *xorm.Session
139+
if sess, err = r.setupSession(ctx, modifiers...); err != nil {
140+
return
141+
}
142+
if cnt, err = sess.Count(&val); err != nil {
143+
return
144+
}
145+
146+
}
147+
if cnt == 0 {
148+
if _, err = r.engine.Context(ctx).Insert(value); err != nil {
149+
return
150+
}
151+
return
152+
}
153+
{
154+
var sess *xorm.Session
155+
if sess, err = r.setupSession(ctx, modifiers...); err != nil {
156+
return
157+
}
158+
if val, err = value.Into(); err != nil {
159+
return
160+
}
161+
if cnt, err = sess.Update(val); err != nil {
162+
return
163+
}
164+
}
165+
return
158166
}
159167
func (r *Repository[T, O, M]) Delete(ctx context.Context, modifiers ...M) (cnt int64, err error) {
160168
var (

0 commit comments

Comments
 (0)