Package com.azure.cosmos.models
Class CosmosBatch
java.lang.Object
com.azure.cosmos.models.CosmosBatch
Represents a batch of operations against items with the same
PartitionKey
in a container that will be performed
in a Cosmos manner at the Azure Cosmos DB service.
Use createCosmosBatch(PartitionKey)
to create an instance of CosmosBatch
.
Example
This example atomically modifies a set of items as a batch.
public class ToDoActivity {
public final String type;
public final String id;
public final String status;
public ToDoActivity(String type, String id, String status) {
this.type = type;
this.id = id;
this.status = status;
}
}
String activityType = "personal";
ToDoActivity test1 = new ToDoActivity(activityType, "learning", "ToBeDone");
ToDoActivity test2 = new ToDoActivity(activityType, "shopping", "Done");
ToDoActivity test3 = new ToDoActivity(activityType, "swimming", "ToBeDone");
CosmosBatch batch = CosmosBatch.createCosmosBatch(new Cosmos.PartitionKey(activityType));
batch.createItemOperation<ToDoActivity>(test1);
batch.replaceItemOperation<ToDoActivity>(test2.id, test2);
batch.upsertItemOperation<ToDoActivity>(test3);
batch.deleteItemOperation("reading");
CosmosBatchResponse response = container.executeTransactionalBatch(batch);
if (!response.isSuccessStatusCode()) {
// Handle and log exception
return;
}
// Look up interested results - e.g., via typed access on operation results
CosmosBatchOperationResult result = response.get(0);
ToDoActivity readActivity = result.getItem(ToDoActivity.class);
Example
This example atomically reads a set of items as a batch.
String activityType = "personal";
CosmosBatch batch = CosmosBatch.createCosmosBatch(new Cosmos.PartitionKey(activityType));
batch.readItemOperation("playing");
batch.readItemOperation("walking");
batch.readItemOperation("jogging");
batch.readItemOperation("running");
CosmosBatchResponse response = container.executeTransactionalBatch(batch);
List<ToDoActivity> resultItems = new ArrayList<ToDoActivity>();
for (int i = 0; i < response.size(); i++) {
CosmosBatchOperationResult result = response.get(0);
resultItems.add(result.getItem(ToDoActivity.class));
}
-
Method Summary
Modifier and TypeMethodDescriptionstatic CosmosBatch
createCosmosBatch
(PartitionKey partitionKey) Initializes a new instance ofCosmosBatch
that will contain operations to be performed across multiple items in the container with the provided partition key in a transactional mannercreateItemOperation
(T item) Adds an operation to create an item into the batch.createItemOperation
(T item, CosmosBatchItemRequestOptions requestOptions) Adds an operation to create an item into the batch.Adds an operation to delete an item into the batch.deleteItemOperation
(String id, CosmosBatchItemRequestOptions requestOptions) Adds an operation to delete an item into the batch.Return the list of operation in an unmodifiable instance so no one can change it in the down path.Return the partition key for this batch.patchItemOperation
(String id, CosmosPatchOperations cosmosPatchOperations) Adds a patch operations for an item into the batch.patchItemOperation
(String id, CosmosPatchOperations cosmosPatchOperations, CosmosBatchPatchItemRequestOptions requestOptions) Adds a patch operations for an item into the batch.Adds an operation to read an item into the batch.readItemOperation
(String id, CosmosBatchItemRequestOptions requestOptions) Adds an operation to read an item into the batch.replaceItemOperation
(String id, T item) Adds an operation to replace an item into the batch.replaceItemOperation
(String id, T item, CosmosBatchItemRequestOptions requestOptions) Adds an operation to replace an item into the batch.upsertItemOperation
(T item) Adds an operation to upsert an item into the batch.upsertItemOperation
(T item, CosmosBatchItemRequestOptions requestOptions) Adds an operation to upsert an item into the batch.
-
Method Details
-
createCosmosBatch
Initializes a new instance ofCosmosBatch
that will contain operations to be performed across multiple items in the container with the provided partition key in a transactional manner- Parameters:
partitionKey
- the partition key for all items in the batch.- Returns:
- A new instance of
CosmosBatch
.
-
createItemOperation
Adds an operation to create an item into the batch.- Type Parameters:
T
- The type of item to be created.- Parameters:
item
- A JSON serializable object that must contain an id property.- Returns:
- The Cosmos batch instance with the operation added.
-
createItemOperation
public <T> CosmosItemOperation createItemOperation(T item, CosmosBatchItemRequestOptions requestOptions) Adds an operation to create an item into the batch.- Type Parameters:
T
- The type of item to be created.- Parameters:
item
- A JSON serializable object that must contain an id property.requestOptions
- The options for the item request.- Returns:
- The Cosmos batch instance with the operation added.
-
deleteItemOperation
Adds an operation to delete an item into the batch.- Parameters:
id
- The unique id of the item.- Returns:
- The Cosmos batch instance with the operation added.
-
deleteItemOperation
public CosmosItemOperation deleteItemOperation(String id, CosmosBatchItemRequestOptions requestOptions) Adds an operation to delete an item into the batch.- Parameters:
id
- The unique id of the item.requestOptions
- The options for the item request.- Returns:
- The Cosmos batch instance with the operation added.
-
readItemOperation
Adds an operation to read an item into the batch.- Parameters:
id
- The unique id of the item.- Returns:
- The Cosmos batch instance with the operation added.
-
readItemOperation
public CosmosItemOperation readItemOperation(String id, CosmosBatchItemRequestOptions requestOptions) Adds an operation to read an item into the batch.- Parameters:
id
- The unique id of the item.requestOptions
- The options for the item request.- Returns:
- The Cosmos batch instance with the operation added.
-
replaceItemOperation
Adds an operation to replace an item into the batch.- Type Parameters:
T
- The type of item to be replaced.- Parameters:
id
- The unique id of the item.item
- A JSON serializable object that must contain an id property.- Returns:
- The Cosmos batch instance with the operation added.
-
replaceItemOperation
public <T> CosmosItemOperation replaceItemOperation(String id, T item, CosmosBatchItemRequestOptions requestOptions) Adds an operation to replace an item into the batch.- Type Parameters:
T
- The type of item to be replaced.- Parameters:
id
- The unique id of the item.item
- A JSON serializable object that must contain an id property.requestOptions
- The options for the item request.- Returns:
- The Cosmos batch instance with the operation added.
-
upsertItemOperation
Adds an operation to upsert an item into the batch.- Type Parameters:
T
- The type of item to be upserted.- Parameters:
item
- A JSON serializable object that must contain an id property.- Returns:
- The Cosmos batch instance with the operation added.
-
upsertItemOperation
public <T> CosmosItemOperation upsertItemOperation(T item, CosmosBatchItemRequestOptions requestOptions) Adds an operation to upsert an item into the batch.- Type Parameters:
T
- The type of item to be upserted.- Parameters:
item
- A JSON serializable object that must contain an id property.requestOptions
- The options for the item request.- Returns:
- The Cosmos batch instance with the operation added.
-
patchItemOperation
public CosmosItemOperation patchItemOperation(String id, CosmosPatchOperations cosmosPatchOperations) Adds a patch operations for an item into the batch.- Parameters:
id
- the item id.cosmosPatchOperations
- Represents a container having list of operations to be sequentially applied to the referred Cosmos item.- Returns:
- The added operation.
-
patchItemOperation
public CosmosItemOperation patchItemOperation(String id, CosmosPatchOperations cosmosPatchOperations, CosmosBatchPatchItemRequestOptions requestOptions) Adds a patch operations for an item into the batch.- Parameters:
id
- the item id.cosmosPatchOperations
- Represents a container having list of operations to be sequentially applied to the referred Cosmos item.requestOptions
- The options for the item request.- Returns:
- The added operation.
-
getOperations
Return the list of operation in an unmodifiable instance so no one can change it in the down path.- Returns:
- The list of operations which are to be executed.
-
getPartitionKeyValue
Return the partition key for this batch.- Returns:
- The partition key for this batch.
-