Transaction
Transaction
If you want to begin a transaction, you have to create a session with engine.NewSession() at first, and then start session.Begin() and don’t forget invoke session.Commit() after all operations finished.
Don’t forget invoke session.Close().
1. session := engine.NewSession()
2. defer session.Close()
4. // add Begin() before any action
5. err := session.Begin()
6. user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
7. _, err = session.Insert(&user1)
8. if err != nil {
9. session.Rollback()
10. return
11. }
12. user2 := Userinfo{Username: "yyy"}
13. _, err = session.Where("id = ?", 2).Update(&user2)
14. if err != nil {
15. session.Rollback()
16. return
17. }
19. _, err = session.Exec("delete from userinfo where username = ?", user2.Username)
20. if err != nil {
21. session.Rollback()
22. return
23. }
25. // add Commit() after all actions
26. err = session.Commit()
27. if err != nil {
28. return
29. }
