Interface Batch
- All Superinterfaces:
DatastoreBatchWriter,DatastoreWriter
submit(). A usage example:
Entity entity1 = datastore.get(key1);
Batch batch = datastore.newBatch();
Entity entity2 = Entity.newBuilder(key2).set("name", "John").build();
entity1 = Entity.newBuilder(entity1).clear().setNull("bla").build();
Entity entity3 = Entity.newBuilder(key3).set("title", "title").build();
batch.update(entity1);
batch.add(entity2, entity3);
batch.submit();
WARNING: This class maintains an internal state in terms of LinkedHashMap and LinkedHashSet which gets updated on every method
call performing CRUD operations to record the mutations. Since LinkedHashMap is
not thread safe as per its documentation,
This class too should not be treated as a thread safe class.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionadd(FullEntity<?> entity) Datastore add operation: inserts the provided entity.add(FullEntity<?>... entities) Datastore add operation: inserts the provided entities.Returns the batch associatedDatastore.submit()Submit the batch to the Datastore.Methods inherited from interface com.google.cloud.datastore.DatastoreBatchWriter
addWithDeferredIdAllocation, delete, isActive, put, put, putWithDeferredIdAllocation, update
-
Method Details
-
add
Datastore add operation: inserts the provided entity. This method will automatically allocate an id if necessary. Ifentityhas a complete key and was already marked for deletion in this writer, the operation will be changed toDatastoreBatchWriter.put(com.google.cloud.datastore.FullEntity<?>).If an entity for
entity.getKey()does not exist,entityis inserted. Otherwise,submit()will throw aDatastoreExceptionwithBaseServiceException.getReason()equal to"ALREADY_EXISTS".- Specified by:
addin interfaceDatastoreBatchWriter- Specified by:
addin interfaceDatastoreWriter- Parameters:
entity- the entity to be added to the datastore- Returns:
- The entity that was added
- Throws:
DatastoreException- if there was any failure
-
add
Datastore add operation: inserts the provided entities. This method will automatically allocate id for any entity with an incomplete key. For entities with complete keys that were marked for deletion in this writer the operation will be changed toDatastoreBatchWriter.put(com.google.cloud.datastore.FullEntity<?>).If none of entities' keys exist, all entities are inserted. If any of entities' keys already exists,
submit()will throw aDatastoreExceptionwithBaseServiceException.getReason()equal to"ALREADY_EXISTS". All entities inentitieswhose key did not exist are inserted.- Specified by:
addin interfaceDatastoreBatchWriter- Specified by:
addin interfaceDatastoreWriter- Parameters:
entities- entities to be added to the datastore- Returns:
- A list of entities that have been added
- Throws:
DatastoreException- if there was any failure- See Also:
-
submit
Batch.Response submit()Submit the batch to the Datastore.- Returns:
- Response of the batch submit operation.
- Throws:
DatastoreException- if there was any failure or if batch is no longer active
-
getDatastore
Datastore getDatastore()Returns the batch associatedDatastore.- Returns:
- The batch associated datastore
-