public CosmosItemResponse deleteItem(T item, CosmosItemRequestOptions options)
Supprime un élément dans le conteneur actuel.
Parameters:
item
- élément à supprimer.
options
- les options.
Returns:
réponse à l’élément Cosmos.
patchItem
public CosmosItemResponse patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class itemType)
Exécutez une mise à jour partielle qui modifie des propriétés ou des champs spécifiques de l’élément sans remplacer l’élément entier.
CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();
cosmosPatchOperations
.add("/departure", "SEA")
.increment("/trips", 1);
CosmosItemResponse<Passenger> response = cosmosContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class);
Parameters:
itemId
- ID d’élément.
partitionKey
- clé de partition.
cosmosPatchOperations
- Représente un conteneur ayant la liste des opérations à appliquer séquentiellement à l’élément Cosmos référencé.
options
- les options de requête.
itemType
- type d’élément.
Returns:
réponse aux ressources d’élément Cosmos avec l’élément corrigé ou une exception.
patchItem
public CosmosItemResponse patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class itemType)
Exécutez une mise à jour partielle qui modifie des propriétés ou des champs spécifiques de l’élément sans remplacer l’élément entier.
CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();
cosmosPatchOperations
.add("/departure", "SEA")
.increment("/trips", 1);
CosmosItemResponse<Passenger> response = cosmosContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class);
Parameters:
itemId
- ID d’élément.
partitionKey
- clé de partition.
cosmosPatchOperations
- Représente un conteneur ayant la liste des opérations à appliquer séquentiellement à l’élément Cosmos référencé.
itemType
- type d’élément.
Returns:
réponse aux ressources d’élément Cosmos avec l’élément corrigé ou une exception.
queryChangeFeed
public CosmosPagedIterable queryChangeFeed(CosmosChangeFeedRequestOptions options, Class classType)
Interrogez les éléments dans le flux de modification du conteneur actuel à l’aide de CosmosChangeFeedRequestOptions .
CosmosChangeFeedRequestOptions options = CosmosChangeFeedRequestOptions
.createForProcessingFromNow(FeedRange.forFullRange())
.allVersionsAndDeletes();
Iterable<FeedResponse<Passenger>> feedResponses = cosmosContainer.queryChangeFeed(options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : feedResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
La page suivante peut être récupérée en appelant à nouveau queryChangeFeed avec une nouvelle instance de CosmosChangeFeedRequestOptions créée à partir du jeton de continuation du instance précédemment retourné FeedResponse<T> .
Parameters:
options
- les options de demande de flux de modification.
classType
- type de classe.
Returns:
queryItems
public CosmosPagedIterable queryItems(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class classType)
Interrogez les éléments dans le conteneur actuel en retournant les résultats sous la forme CosmosPagedIterable<T> .
CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
String query = "SELECT * FROM Passenger p WHERE (p.departure = @departure)";
List<SqlParameter> parameters = Collections.singletonList(new SqlParameter("@departure", "SEA"));
SqlQuerySpec sqlQuerySpec = new SqlQuerySpec(query, parameters);
Iterable<FeedResponse<Passenger>> queryResponses = cosmosContainer.queryItems(sqlQuerySpec, options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : queryResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
Parameters:
querySpec
- spécification de requête.
options
- les options.
classType
- type de classe.
Returns:
queryItems
public CosmosPagedIterable queryItems(String query, CosmosQueryRequestOptions options, Class classType)
Interrogez les éléments dans le conteneur actuel en retournant les résultats sous la forme CosmosPagedIterable<T> .
CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
String query = "SELECT * FROM Passenger WHERE Passenger.departure IN ('SEA', 'IND')";
Iterable<FeedResponse<Passenger>> queryResponses = cosmosContainer.queryItems(query, options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : queryResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
Parameters:
query
- la requête.
options
- les options.
classType
- type de classe.
Returns:
readAllItems
public CosmosPagedIterable readAllItems(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class classType)
Lit tous les éléments d’une partition logique renvoyant les résultats sous la forme CosmosPagedIterable<T> .
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
partitionKey
- la valeur de clé de partition des documents qui doivent être lus
options
- options de flux.
classType
- type de classe.
Returns:
readAllItems
public CosmosPagedIterable readAllItems(PartitionKey partitionKey, Class classType)
Lit tous les éléments d’une partition logique renvoyant les résultats sous la forme CosmosPagedIterable<T> .
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
partitionKey
- la valeur de clé de partition des documents qui doivent être lus
classType
- type de classe.
Returns:
readItem
public CosmosItemResponse readItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class itemType)
Lit un élément dans le conteneur actuel tout en spécifiant des options supplémentaires.
Cette opération permet de récupérer un élément unique à partir d’un conteneur en fonction de son identificateur unique (ID) et de sa clé de partition. L’opération readItem fournit un accès direct à un élément spécifique à l’aide de son identificateur unique, qui se compose de l’ID de l’élément et de la valeur de clé de partition. Cette opération est efficace pour récupérer un élément connu par son ID et sa clé de partition sans avoir besoin d’interrogations complexes.
Parameters:
itemId
- ID d’élément.
partitionKey
- clé de partition.
options
- les options (Facultatif).
itemType
- type de classe de l’élément.
Returns:
réponse à l’élément Cosmos.
readItem
public CosmosItemResponse readItem(String itemId, PartitionKey partitionKey, Class itemType)
Lit un élément dans le conteneur actuel.
Cette opération permet de récupérer un élément unique à partir d’un conteneur en fonction de son identificateur unique (ID) et de sa clé de partition. L’opération readItem fournit un accès direct à un élément spécifique à l’aide de son identificateur unique, qui se compose de l’ID de l’élément et de la valeur de clé de partition. Cette opération est efficace pour récupérer un élément connu par son ID et sa clé de partition sans avoir besoin d’interrogations complexes.
// Read an item
try {
CosmosItemResponse<Passenger> response = cosmosContainer.readItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
Passenger.class
);
Passenger passengerItem = response.getItem();
} catch (NotFoundException e) {
// catch exception if item not found
System.out.printf("Passenger with item id %s not found\n",
passenger.getId());
} catch (Exception e) {
System.out.println(e.getMessage());
}
// ...
Parameters:
itemId
- ID d’élément.
partitionKey
- clé de partition.
itemType
- type de classe de l’élément.
Returns:
réponse à l’élément Cosmos.
readMany
public FeedResponse readMany(List itemIdentityList, Class classType)
Lit de nombreux documents. Utile pour lire de nombreux documents avec un ID et une clé de partition particuliers dans une requête unique. Si un document de la liste est manquant, aucune exception n’est levée.
List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));
FeedResponse<Passenger> passengerFeedResponse = cosmosContainer.readMany(itemIdentityList, Passenger.class);
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
Parameters:
itemIdentityList
- Id CosmosItem et tuple de clé de partition des éléments qui doivent être lus
classType
- type de classe
Returns:
mono avec réponse de flux d’éléments cosmos
readMany
public FeedResponse readMany(List itemIdentityList, String sessionToken, Class classType)
Lit de nombreux documents. Utile pour lire de nombreux documents avec un ID et une clé de partition particuliers dans une requête unique. Si un document de la liste est manquant, aucune exception n’est levée.
List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));
FeedResponse<Passenger> passengerFeedResponse = cosmosContainer.readMany(itemIdentityList, Passenger.class);
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
Parameters:
itemIdentityList
- Id CosmosItem et tuple de clé de partition des éléments qui doivent être lus
sessionToken
- jeton de session facultatif : null si la lecture peut être effectuée sans jeton de session spécifique
classType
- type de classe
Returns:
mono avec réponse de flux d’éléments cosmos
replaceItem
public CosmosItemResponse replaceItem(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
Remplace un élément existant dans un conteneur par un nouvel élément. Il effectue un remplacement complet de l’élément, en remplaçant toutes ses propriétés par les propriétés du nouvel élément
CosmosItemResponse<Passenger> response = cosmosContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions());
Parameters:
item
- l’élément.
itemId
- ID d’élément.
partitionKey
- clé de partition.
options
- les options.
Returns:
réponse à l’élément Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item)
Upserts un élément Cosmos dans le conteneur actuel.
Parameters:
item
- l’élément.
Returns:
réponse à l’élément Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item, CosmosItemRequestOptions options)
Upserts a item Cosmos sync item tout en spécifiant des options supplémentaires.
Parameters:
item
- l’élément.
options
- les options.
Returns:
réponse à l’élément Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)
Upserts un élément de synchronisation Cosmos tout en spécifiant des options supplémentaires.
Parameters:
item
- l’élément.
partitionKey
- partitionKey.
options
- les options.
Returns:
réponse à l’élément Cosmos.
executeBulkOperations
public Iterable> executeBulkOperations(Iterable operations)
Exécute la liste des opérations en bloc.
Parameters:
operations
- liste des opérations qui seront exécutées par ce conteneur.
Returns:
Iterable de qui contient l’opération
CosmosBulkOperationResponse<TContext> et sa réponse ou son exception.
Pour créer une opération qui peut être exécutée ici, utilisez
CosmosBulkOperations . Par exemple
pour une opération upsert, utilisez
com.azure.cosmos.models.CosmosBulkOperations#getUpsertItemOperation(Object, PartitionKey)
Nous pouvons obtenir l’opération correspondante à l’aide
getOperation() de et sa réponse à l’aide de
getResponse() . Si l’opération a été exécutée avec succès, la valeur retournée par
isSuccessStatusCode() sera true. Pour obtenir des status réels, utilisez
getStatusCode() .
Pour case activée si l’opération comportait une exception, utilisez
getException() pour obtenir l’exception.
executeBulkOperations
public Iterable> executeBulkOperations(Iterable operations, CosmosBulkExecutionOptions bulkOptions)
Exécute la liste des opérations en bloc.
Parameters:
operations
- liste des opérations qui seront exécutées par ce conteneur.
bulkOptions
- Options qui s’appliquent à cette demande en bloc qui spécifie des options relatives à l’exécution, telles que la concurrence, la taille du traitement par lots, l’intervalle et le contexte.
Returns:
Iterable de qui contient l’opération
CosmosBulkOperationResponse<TContext> et sa réponse ou son exception.
Pour créer une opération qui peut être exécutée ici, utilisez
CosmosBulkOperations . Par exemple
pour une opération upsert, utilisez
com.azure.cosmos.models.CosmosBulkOperations#getUpsertItemOperation(Object, PartitionKey)
Nous pouvons obtenir l’opération correspondante à l’aide
getOperation() de et sa réponse à l’aide de
getResponse() . Si l’opération a été exécutée avec succès, la valeur retournée par
isSuccessStatusCode() sera true. Pour obtenir des status réels, utilisez
getStatusCode() .
Pour case activée si l’opération comportait une exception, utilisez
getException() pour obtenir l’exception.
delete
public CosmosContainerResponse delete()
Supprime le conteneur cosmos actuel.
Returns:
réponse du conteneur cosmos.
delete
public CosmosContainerResponse delete(CosmosContainerRequestOptions options)
Supprime le conteneur Cosmos actuel tout en spécifiant des options supplémentaires telles que If-Match.
Parameters:
options
- les options.
Returns:
réponse du conteneur cosmos.
deleteAllItemsByPartitionKey
public CosmosItemResponse deleteAllItemsByPartitionKey(PartitionKey partitionKey, CosmosItemRequestOptions options)
Supprime tous les éléments du conteneur avec la valeur partitionKey spécifiée. Démarre une opération asynchrone en arrière-plan Cosmos DB qui supprime tous les éléments du conteneur avec la valeur spécifiée. L’opération asynchrone en arrière-plan Cosmos DB s’exécute à l’aide d’un pourcentage d’unités de requête utilisateur.
Parameters:
partitionKey
- clé de partition.
options
- les options.
Returns:
réponse à l’élément Cosmos
deleteItem
public CosmosItemResponse deleteItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
Supprime un élément dans le conteneur actuel.
try {
CosmosItemRequestOptions options = new CosmosItemRequestOptions();
CosmosItemResponse<Object> deleteItemResponse = cosmosContainer.deleteItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
options
);
System.out.println(deleteItemResponse);
} catch (NotFoundException e) {
// catch exception if item not found
System.out.printf("Passenger with item id %s not found\n",
passenger.getId());
} catch (Exception e) {
System.out.println(e.getMessage());
}
Parameters:
itemId
- ID d’élément.
partitionKey
- clé de partition.
options
- les options.
Returns:
réponse à l’élément Cosmos.
enableGlobalThroughputControlGroup
public void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig)
Activez le groupe de contrôle de débit avec le mode de contrôle global. La limite de débit définie sera partagée entre différents clients.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
GlobalThroughputControlConfig globalControlConfig =
this.client.createGlobalThroughputControlConfigBuilder(database.getId(), container.getId())
.setControlItemRenewInterval(Duration.ofSeconds(5))
.setControlItemExpireInterval(Duration.ofSeconds(10))
.build();
container.enableGlobalThroughputControlGroup(groupConfig, globalControlConfig);
Parameters:
groupConfig
- La configuration du groupe de contrôle de débit, consultez GlobalThroughputControlGroup .
enableLocalThroughputControlGroup
public void enableLocalThroughputControlGroup(ThroughputControlGroupConfig groupConfig)
Activez le groupe de contrôle de débit en mode de contrôle local.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
container.enableLocalThroughputControlGroup(groupConfig);
Parameters:
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch)
Exécute le lot transactionnel.
Parameters:
cosmosBatch
- Lot ayant la liste des opérations et de la clé de partition qui seront exécutées par ce conteneur.
Returns:
TransactionalBatchResponse qui contient les détails de l’exécution du lot transactionnel.
Si le lot transactionnel s’exécute correctement, la valeur retournée par CosmosBatchResponse#getStatusCode sur la réponse retournée est définie sur 200}.
Si une opération dans le lot transactionnel échoue pendant l’exécution, aucune modification du lot n’est validée et la status de l’opération défaillante est rendue disponible par CosmosBatchResponse#getStatusCode ou par l’exception. Pour obtenir des informations sur les opérations qui ont échoué en cas d’erreur utilisateur comme un conflit, introuvable, etc., vous pouvez énumérer la réponse.
Cela retourne CosmosBatchOperationResult des instances correspondant à chaque opération du lot transactionnel dans l’ordre dans lequel elles ont été ajoutées au lot transactionnel.
Pour un résultat correspondant à une opération dans le lot transactionnel, utilisez CosmosBatchOperationResult#getStatusCode pour accéder au status de l’opération. Si l’opération n’a pas été exécutée ou si elle a été abandonnée en raison de l’échec d’une autre opération dans le lot transactionnel, la valeur de ce champ est 424 ; pour l’opération qui a provoqué l’abandon du lot, la valeur de ce champ indique la cause de l’échec.
S’il existe des problèmes tels que les délais d’expiration de la demande, la session non disponible, l’échec réseau ou si le service retourne d’une manière ou d’une autre 5xx, une exception est levée au lieu de renvoyer une CosmosBatchResponse.
Utilisez CosmosBatchResponse#isSuccessStatusCode sur la réponse retournée pour vous assurer que le lot transactionnel a réussi.
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
Exécute le lot transactionnel.
Parameters:
cosmosBatch
- Lot ayant la liste des opérations et de la clé de partition qui seront exécutées par ce conteneur.
requestOptions
- Options qui s’appliquent spécifiquement à la demande par lots.
Returns:
CosmosBatchResponse qui contient les détails de l’exécution du lot transactionnel.
Si le lot transactionnel s’exécute correctement, la valeur retournée par CosmosBatchResponse#getStatusCode sur la réponse retournée est définie sur 200}.
Si une opération dans le lot transactionnel échoue pendant l’exécution, aucune modification du lot n’est validée et la status de l’opération défaillante est rendue disponible par CosmosBatchResponse#getStatusCode ou par l’exception. Pour obtenir des informations sur les opérations qui ont échoué en cas d’erreur utilisateur comme un conflit, introuvable, etc., vous pouvez énumérer la réponse.
Cela retourne CosmosBatchOperationResult des instances correspondant à chaque opération du lot transactionnel dans l’ordre dans lequel elles ont été ajoutées au lot transactionnel.
Pour un résultat correspondant à une opération dans le lot transactionnel, utilisez CosmosBatchOperationResult#getStatusCode pour accéder au status de l’opération. Si l’opération n’a pas été exécutée ou si elle a été abandonnée en raison de l’échec d’une autre opération dans le lot transactionnel, la valeur de ce champ est 424 ; pour l’opération qui a provoqué l’abandon du lot, la valeur de ce champ indique la cause de l’échec.
S’il existe des problèmes tels que les délais d’expiration de la demande, la session non disponible, l’échec réseau ou si le service retourne d’une manière ou d’une autre 5xx, une exception est levée au lieu de renvoyer une CosmosBatchResponse.
Utilisez CosmosBatchResponse#isSuccessStatusCode sur la réponse retournée pour vous assurer que le lot transactionnel a réussi.
getFeedRanges
public List getFeedRanges()
Obtient une liste de FeedRange qui peuvent être utilisées pour paralléliser les opérations de flux.
List<FeedRange> feedRanges = cosmosContainer.getFeedRanges();
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
Returns:
getId
public String getId()
Obtient l’ID de conteneur actuel.
Returns:
l’ID du conteneur.
getScripts
public CosmosScripts getScripts()
Obtient les scripts Cosmos en utilisant le conteneur actuel comme contexte.
Returns:
les scripts de synchronisation Cosmos.
openConnectionsAndInitCaches
@Deprecated public void openConnectionsAndInitCaches()
Déprécié
Initialise le conteneur en réchauffant les caches et les connexions pour la région de lecture actuelle.
REMARQUE : dans l’idéal, cette API ne doit être appelée qu’une seule fois lors de l’initialisation de l’application avant toute charge de travail.
En cas d’erreur temporaire, l’appelant doit consommer l’erreur et continuer la charge de travail régulière.
openConnectionsAndInitCaches
@Deprecated public void openConnectionsAndInitCaches(int numProactiveConnectionRegions)
Déprécié
Initialise le conteneur en réchauffant les caches et les connexions à un no spécifié de régions de connexion proactives. Pour plus d’informations sur les régions de connexion proactives, consultez getProactiveConnectionRegionsCount()
REMARQUE : dans l’idéal, cette API ne doit être appelée qu’une seule fois lors de l’initialisation de l’application avant toute charge de travail.
En cas d’erreur temporaire, l’appelant doit consommer l’erreur et continuer la charge de travail régulière.
Parameters:
numProactiveConnectionRegions
- le nombre de régions à lesquelles se connecter de manière proactive à partir de la liste de régions par défaut
read
public CosmosContainerResponse read()
Lit le conteneur actuel.
Returns:
réponse du conteneur Cosmos avec le conteneur de lecture.
read
public CosmosContainerResponse read(CosmosContainerRequestOptions options)
Lit le conteneur actuel tout en spécifiant des options supplémentaires telles que If-Match.
Parameters:
options
- les options.
Returns:
réponse du conteneur Cosmos.
readThroughput
public ThroughputResponse readThroughput()
Obtient le débit du conteneur actuel.
try {
ThroughputResponse throughputResponse = cosmosContainer.readThroughput();
System.out.println(throughputResponse);
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Returns:
réponse de débit.
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties)
Remplace les propriétés de conteneur actuelles.
Parameters:
containerProperties
- propriétés du conteneur.
Returns:
réponse du conteneur cosmos.
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)
Remplace les propriétés de conteneur actuelles tout en spécifiant des options supplémentaires telles que If-Match.
Parameters:
containerProperties
- propriétés du conteneur.
options
- les options.
Returns:
réponse du conteneur cosmos.
replaceThroughput
public ThroughputResponse replaceThroughput(ThroughputProperties throughputProperties)
Définit le débit du conteneur actuel.
ThroughputProperties throughputProperties =
ThroughputProperties.createAutoscaledThroughput(1000);
try {
ThroughputResponse throughputResponse =
cosmosContainer.replaceThroughput(throughputProperties);
System.out.println(throughputResponse);
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Parameters:
throughputProperties
- propriétés de débit (facultatif).
Returns:
réponse de débit.
S’applique à