Files
ezbookkeeping/pkg/datastore/database.go
T
MaysWind 180ae7cb72 fix typo
2020-11-08 20:02:59 +08:00

28 lines
411 B
Go

package datastore
import "xorm.io/xorm"
type Database struct {
*xorm.EngineGroup
}
func (db *Database) DoTransaction(fn func(sess *xorm.Session) error) (err error) {
sess := db.NewSession()
defer sess.Close()
if err = sess.Begin(); err != nil {
return err
}
if err = fn(sess); err != nil {
_ = sess.Rollback()
return err
}
if err = sess.Commit(); err != nil {
return err
}
return nil
}