/** Example of running in a transaction. */ // [TARGET runInTransaction(TransactionCallable)] // [VARIABLE "my_callable_result"] public String runInTransaction(final String callableResult) { // [START runInTransaction] TransactionCallable<String> callable = new TransactionCallable<String>() { public String run(DatastoreReaderWriter readerWriter) { // use readerWriter to run in transaction return callableResult; } }; String result = datastore.runInTransaction(callable); // [END runInTransaction] return result; }
int result = DATASTORE.runInTransaction(callable1); assertEquals(result, 2); DATASTORE.runInTransaction(callable2); fail("Expecting a failure"); } catch (DatastoreException expected) {
.setReadWrite(TransactionOptions.ReadWrite.getDefaultInstance()) .build(); Integer result = mockDatastore.runInTransaction(callable, options); EasyMock.verify(rpcFactoryMock, rpcMock); assertEquals(2, result.intValue());
int result = DATASTORE.runInTransaction(callable1); assertEquals(result, 2); DATASTORE.runInTransaction(callable2, readOnlyOptions); fail("Expecting a failure"); } catch (DatastoreException expected) {
@Override public <T> T runInTransaction(TransactionCallable<T> transactionCallable) { return delegate.runInTransaction(rw -> transactionCallable.run(InstrumentedDatastoreReaderWriter.of(stats, rw))); }
@Override public <T> T runInTransaction(TransactionCallable<T> transactionCallable, TransactionOptions transactionOptions) { return delegate.runInTransaction(rw -> transactionCallable.run(InstrumentedDatastoreReaderWriter.of(stats, rw)), transactionOptions); }
@Override public <A> A performTransaction(Function<DatastoreOperations, A> operations) { if (!(getDatastoreReadWriter() instanceof Datastore)) { throw new DatastoreDataException( "This DatastoreReadWriter cannot be used to run transactions. A full Datastore service" + " object is required to run functions as transactions. Ensure that this method " + "was not called in an ongoing transaction."); } return ((Datastore) getDatastoreReadWriter()) .runInTransaction( (DatastoreReaderWriter readerWriter) -> operations.apply(new DatastoreTemplate(readerWriter, DatastoreTemplate.this.datastoreEntityConverter, DatastoreTemplate.this.datastoreMappingContext, DatastoreTemplate.this.objectToKeyFactory))); }
@Override public <A> A performTransaction(Function<DatastoreOperations, A> operations) { if (!(getDatastoreReadWriter() instanceof Datastore)) { throw new DatastoreDataException( "This DatastoreReadWriter cannot be used to run transactions. A full Datastore service" + " object is required to run functions as transactions. Ensure that this method " + "was not called in an ongoing transaction."); } return ((Datastore) getDatastoreReadWriter()) .runInTransaction( (DatastoreReaderWriter readerWriter) -> operations.apply(new DatastoreTemplate(readerWriter, DatastoreTemplate.this.datastoreEntityConverter, DatastoreTemplate.this.datastoreMappingContext, DatastoreTemplate.this.objectToKeyFactory))); }