go-transaction-manager

Форк
0
21 строка · 577.0 Байт
1
package gorm
2

3
import (
4
	"context"
5

6
	"gorm.io/gorm"
7

8
	"github.com/avito-tech/go-transaction-manager/trm/v2"
9
)
10

11
// NewDefaultFactory creates default trm.Transaction(gorm.DB).
12
// Factory rewrites DisableNestedTransaction in gorm.Config with Propagation in trm.Settings.
13
func NewDefaultFactory(db *gorm.DB) trm.TrFactory {
14
	return func(ctx context.Context, trms trm.Settings) (context.Context, trm.Transaction, error) {
15
		s, _ := trms.(Settings)
16

17
		db.Config.DisableNestedTransaction = trms.Propagation() != trm.PropagationNested
18

19
		return NewTransaction(ctx, s.TxOpts(), db)
20
	}
21
}
22

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.