yjp преди 3 месеца
родител
ревизия
f9ba4f37a2
променени са 1 файла, в които са добавени 8 реда и са изтрити 0 реда
  1. 8 0
      framework/core/infrastructure/database/database.go

+ 8 - 0
framework/core/infrastructure/database/database.go

@@ -78,11 +78,19 @@ func Transaction(executor Executor, txFunc func(tx Executor) error) error {
 	switch e := executor.(type) {
 	case *operations.Operations:
 		tx := e.BeginTransaction()
+
+		defer func() {
+			if r := recover(); r != nil {
+				tx.RollbackTransaction()
+			}
+		}()
+
 		err := txFunc(tx)
 		if err != nil {
 			tx.RollbackTransaction()
 			return err
 		}
+
 		tx.CommitTransaction()
 	default:
 		return nil