com.google.cloud.datastore.DatastoreReaderWriter Java Examples
The following examples show how to use
com.google.cloud.datastore.DatastoreReaderWriter.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DatastoreTemplate.java From spring-cloud-gcp with Apache License 2.0 | 6 votes |
public DatastoreTemplate(Supplier<? extends DatastoreReaderWriter> datastore, DatastoreEntityConverter datastoreEntityConverter, DatastoreMappingContext datastoreMappingContext, ObjectToKeyFactory objectToKeyFactory) { Assert.notNull(datastore, "A non-null Datastore service object is required."); Assert.notNull(datastoreEntityConverter, "A non-null DatastoreEntityConverter is required."); Assert.notNull(datastoreMappingContext, "A non-null DatastoreMappingContext is required."); Assert.notNull(objectToKeyFactory, "A non-null Object to Key factory is required."); this.datastore = datastore; this.datastoreEntityConverter = datastoreEntityConverter; this.datastoreMappingContext = datastoreMappingContext; this.objectToKeyFactory = objectToKeyFactory; }
Example #2
Source File: DatastoreTemplate.java From spring-cloud-gcp with Apache License 2.0 | 6 votes |
private <T> T computeReferencedField(BaseEntity entity, ReadContext context, DatastorePersistentProperty referenceProperty, String fieldName, Class<T> type) { T referenced; if (referenceProperty.isLazyLoaded()) { DatastoreReaderWriter originalTx = getDatastoreReadWriter(); referenced = LazyUtil.wrapSimpleLazyProxy(() -> { if (getDatastoreReadWriter() != originalTx) { throw new DatastoreDataException("Lazy load should be invoked within the same transaction"); } return (T) findReferenced(entity, referenceProperty, context); }, type, entity.getValue(fieldName)); } else { referenced = (T) findReferenced(entity, referenceProperty, context); } return referenced; }
Example #3
Source File: DatastoreTemplateTests.java From spring-cloud-gcp with Apache License 2.0 | 6 votes |
@Test public void performTransactionTest() { DatastoreReaderWriter transactionContext = mock(DatastoreReaderWriter.class); when(this.datastore.runInTransaction(any())).thenAnswer((invocation) -> { TransactionCallable<String> callable = invocation.getArgument(0); return callable.run(transactionContext); }); List<Entity> e1 = Collections .singletonList(this.e1); when(transactionContext.fetch(ArgumentMatchers.<Key[]>any())).thenReturn(e1); String finalResult = this.datastoreTemplate .performTransaction((datastoreOperations) -> { datastoreOperations.save(this.ob2); datastoreOperations.findById("ignored", TestEntity.class); return "all done"; }); assertThat(finalResult).isEqualTo("all done"); verify(transactionContext, times(1)).put(ArgumentMatchers.<FullEntity[]>any()); verify(transactionContext, times(2)).fetch((Key[]) any()); }
Example #4
Source File: DatastoreSnippets.java From google-cloud-java with Apache License 2.0 | 6 votes |
/** 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; }
Example #5
Source File: DatastoreTemplate.java From spring-cloud-gcp with Apache License 2.0 | 5 votes |
@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))); }
Example #6
Source File: DatastoreTemplate.java From spring-cloud-gcp with Apache License 2.0 | 5 votes |
private DatastoreReaderWriter getDatastoreReadWriter() { if (TransactionSynchronizationManager.isActualTransactionActive()) { DatastoreTransactionManager.Tx tx = (DatastoreTransactionManager.Tx) TransactionSynchronizationManager .getResource(this.datastore.get()); if (tx != null && tx.getTransaction() != null) { return tx.getTransaction(); } } return this.datastore.get(); }
Example #7
Source File: GcpDatastoreAutoConfiguration.java From spring-cloud-gcp with Apache License 2.0 | 5 votes |
@Bean @ConditionalOnMissingBean public DatastoreTemplate datastoreTemplate(Supplier<? extends DatastoreReaderWriter> datastore, DatastoreMappingContext datastoreMappingContext, DatastoreEntityConverter datastoreEntityConverter, ObjectToKeyFactory objectToKeyFactory) { return new DatastoreTemplate(datastore, datastoreEntityConverter, datastoreMappingContext, objectToKeyFactory); }
Example #8
Source File: InstrumentedDatastoreReaderWriter.java From styx with Apache License 2.0 | 5 votes |
static InstrumentedDatastoreReaderWriter of(Stats stats, DatastoreReaderWriter readerWriter) { Objects.requireNonNull(stats, "stats"); Objects.requireNonNull(readerWriter, "readerWriter"); return new InstrumentedDatastoreReaderWriter() { @Override public DatastoreReaderWriter readerWriter() { return readerWriter; } @Override public Stats stats() { return stats; } }; }
Example #9
Source File: CheckedDatastoreReaderWriter.java From styx with Apache License 2.0 | 4 votes |
/** * Create a new {@link CheckedDatastoreReaderWriter} wrapping a {@link DatastoreReaderWriter}. */ CheckedDatastoreReaderWriter(DatastoreReaderWriter rw) { this.rw = Objects.requireNonNull(rw); }
Example #10
Source File: InstrumentedTransaction.java From styx with Apache License 2.0 | 4 votes |
@Override default DatastoreReaderWriter readerWriter() { return transaction(); }
Example #11
Source File: InstrumentedDatastore.java From styx with Apache License 2.0 | 4 votes |
@Override public DatastoreReaderWriter readerWriter() { return delegate; }
Example #12
Source File: InstrumentedDatastoreTest.java From styx with Apache License 2.0 | 4 votes |
private void testReaderWriter(DatastoreReaderWriter instrumented, DatastoreReaderWriter delegate) { testReader(instrumented, delegate); testWriter(instrumented, delegate); }
Example #13
Source File: InstrumentedDatastoreReaderWriter.java From styx with Apache License 2.0 | votes |
DatastoreReaderWriter readerWriter();