$startTransaction method
Future<Client>
$startTransaction({
- TransactionHeaders? headers,
- Duration timeout = const Duration(seconds: 5),
- Duration maxWait = const Duration(seconds: 2),
- TransactionIsolationLevel? isolationLevel,
Start a new transaction.
Implementation
Future<Client> $startTransaction({
TransactionHeaders? headers,
Duration timeout = const Duration(seconds: 5),
Duration maxWait = const Duration(seconds: 2),
TransactionIsolationLevel? isolationLevel,
}) async {
// If the client is a transaction, use it.
if (_transaction != null) {
return this as Client;
}
// Request a new transaction.
final TransactionInfo transactionInfo = await _engine.startTransaction(
headers: headers,
timeout: timeout,
maxWait: maxWait,
isolationLevel: isolationLevel,
);
return copyWith(
headers: QueryEngineRequestHeaders(
transactionId: transactionInfo.id,
traceparent: headers?.traceparent,
),
transaction: transactionInfo,
);
}