MCPcopy Create free account
hub / github.com/mikro-orm/mikro-orm / transactional

Function transactional

packages/sql/src/AbstractSqlConnection.ts:147–168  ·  view source on GitHub ↗

Executes a callback within a transaction, committing on success and rolling back on error.

(
    cb: (trx: Transaction<ControlledTransaction<any, any>>) => Promise<T>,
    options: {
      isolationLevel?: IsolationLevel;
      readOnly?: boolean;
      ctx?: ControlledTransaction<any>;
      eventBroadcaster?: TransactionEventBroadcaster;
      loggerContext?: LogContext;
    } = {},
  )

Source from the content-addressed store, hash-verified

145
146 /** Executes a callback within a transaction, committing on success and rolling back on error. */
147 override async transactional<T>(
148 cb: (trx: Transaction<ControlledTransaction<any, any>>) => Promise<T>,
149 options: {
150 isolationLevel?: IsolationLevel;
151 readOnly?: boolean;
152 ctx?: ControlledTransaction<any>;
153 eventBroadcaster?: TransactionEventBroadcaster;
154 loggerContext?: LogContext;
155 } = {},
156 ): Promise<T> {
157 const trx = await this.begin(options);
158
159 try {
160 const ret = await cb(trx);
161 await this.commit(trx, options.eventBroadcaster, options.loggerContext);
162
163 return ret;
164 } catch (error) {
165 await this.rollback(trx, options.eventBroadcaster, options.loggerContext);
166 throw error;
167 }
168 }
169
170 /** Begins a new transaction or creates a savepoint if a transaction context already exists. */
171 override async begin(

Callers

nothing calls this directly

Calls 3

commitMethod · 0.65
rollbackMethod · 0.65
beginMethod · 0.45

Tested by

no test coverage detected