Multiple transactions within one session #1008

Closed
opened 2018-06-18 12:41:58 +00:00 by axifive · 2 comments
axifive commented 2018-06-18 12:41:58 +00:00 (Migrated from github.com)

Is it possible to use multiple transactions in one session?
When I try that, I get an error in query after the second session.Begin()

Something like this:

session := engine.NewSession()
defer session.Close()

err := session.Begin()  
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
_, err = session.Insert(&user1)
if err != nil {
    session.Rollback()
    return
}
err = session.Commit()
if err != nil {
    return
}

// Some another code

err := session.Begin() 

user2 := Userinfo{Username: "yyy"}
_, err = session.Where("id = ?", 2).Update(&user2)
if err != nil {
    session.Rollback()
    return
}
_, err = session.Exec("delete from userinfo where username = ?", user2.Username)
if err != nil {
    session.Rollback()
    return
}
err = session.Commit()
if err != nil {
    return
}

Is it possible to use multiple transactions in one session? When I try that, I get an error in query after the second `session.Begin()` Something like this: ``` session := engine.NewSession() defer session.Close() err := session.Begin() user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()} _, err = session.Insert(&user1) if err != nil { session.Rollback() return } err = session.Commit() if err != nil { return } // Some another code err := session.Begin() user2 := Userinfo{Username: "yyy"} _, err = session.Where("id = ?", 2).Update(&user2) if err != nil { session.Rollback() return } _, err = session.Exec("delete from userinfo where username = ?", user2.Username) if err != nil { session.Rollback() return } err = session.Commit() if err != nil { return } ```

It's not supported yet currently.

It's not supported yet currently.
axifive commented 2018-06-18 13:10:44 +00:00 (Migrated from github.com)

Ok, Thanks for the quick response. Just wanted to know maybe I did something wrong

Ok, Thanks for the quick response. Just wanted to know maybe I did something wrong
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: xorm/xorm#1008
No description provided.