public interface TransactionRunner
TransactionContext
for a description of transaction
semantics. TransactionRunner
instances are obtained by calling DatabaseClient.readWriteTransaction()
.
A TransactionRunner
instance can only be used for a single invocation of run(TransactionCallable)
.
Modifier and Type | Interface and Description |
---|---|
static interface |
TransactionRunner.TransactionCallable<T>
A unit of work to be performed in the context of a transaction.
|
Modifier and Type | Method and Description |
---|---|
Timestamp |
getCommitTimestamp()
Returns the timestamp at which the transaction committed.
|
<T> T |
run(TransactionRunner.TransactionCallable<T> callable)
Executes a read-write transaction, with retries as necessary.
|
@Nullable <T> T run(TransactionRunner.TransactionCallable<T> callable)
callable
, which may return an object as the result of
the work. callable
will be retried if a transaction attempt aborts; implementations
must be prepared to be called more than once. Any writes buffered by callable
will only
be applied if the transaction commits successfully. Similarly, the value produced by callable
will only be returned by this method if the transaction commits successfully.
callable
is allowed to raise an unchecked exception. Typically this prevents further
attempts to execute callable
, and the exception will propagate from this method call.
However, if a read or query in callable
detected that the transaction aborted, callable
will be retried even if it raised an exception.
Timestamp getCommitTimestamp()
run(TransactionCallable)
has returned normally.Copyright © 2018 Google LLC. All rights reserved.