github.com/goravel/framework@v1.13.9/database/gorm/transaction.go (about)

     1  package gorm
     2  
     3  import (
     4  	"gorm.io/gorm"
     5  
     6  	"github.com/goravel/framework/contracts/config"
     7  	"github.com/goravel/framework/contracts/database/orm"
     8  )
     9  
    10  type Transaction struct {
    11  	orm.Query
    12  	instance *gorm.DB
    13  }
    14  
    15  func NewTransaction(tx *gorm.DB, config config.Config, connection string) *Transaction {
    16  	return &Transaction{Query: NewQueryImpl(tx.Statement.Context, config, connection, tx, nil), instance: tx}
    17  }
    18  
    19  func (r *Transaction) Commit() error {
    20  	return r.instance.Commit().Error
    21  }
    22  
    23  func (r *Transaction) Rollback() error {
    24  	return r.instance.Rollback().Error
    25  }