public CosmosItemResponse deleteItem(T item, CosmosItemRequestOptions options)
Exclui um item no contêiner atual.
Parameters:
item
- o item a ser excluído.
options
- as opções.
Returns:
a resposta do item do Cosmos.
patchItem
public CosmosItemResponse patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class itemType)
Execute a atualização parcial que modifica propriedades ou campos específicos do item sem substituir o item inteiro.
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
- a ID do item.
partitionKey
- a chave de partição.
cosmosPatchOperations
- Representa um contêiner que tem uma lista de operações a serem aplicadas sequencialmente ao item cosmos referenciado.
options
- as opções de solicitação.
itemType
- o tipo de item.
Returns:
a resposta do recurso de item do Cosmos com o item corrigido ou uma exceção.
patchItem
public CosmosItemResponse patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class itemType)
Execute a atualização parcial que modifica propriedades ou campos específicos do item sem substituir o item inteiro.
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
- a ID do item.
partitionKey
- a chave de partição.
cosmosPatchOperations
- Representa um contêiner que tem uma lista de operações a serem aplicadas sequencialmente ao item cosmos referenciado.
itemType
- o tipo de item.
Returns:
a resposta do recurso de item do Cosmos com o item corrigido ou uma exceção.
queryChangeFeed
public CosmosPagedIterable queryChangeFeed(CosmosChangeFeedRequestOptions options, Class classType)
Consulte itens no feed de alterações do contêiner atual usando o 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);
}
A próxima página pode ser recuperada chamando queryChangeFeed novamente com uma nova instância de CosmosChangeFeedRequestOptions criada a partir do token de continuação da instância retornada FeedResponse<T> anteriormente.
Parameters:
options
- as opções de solicitação do feed de alterações.
classType
- o tipo de classe.
Returns:
queryItems
public CosmosPagedIterable queryItems(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class classType)
Consultar itens no contêiner atual retornando os resultados como 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
- a especificação de consulta.
options
- as opções.
classType
- o tipo de classe.
Returns:
queryItems
public CosmosPagedIterable queryItems(String query, CosmosQueryRequestOptions options, Class classType)
Consultar itens no contêiner atual retornando os resultados como 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
- a consulta.
options
- as opções.
classType
- o tipo de classe.
Returns:
readAllItems
public CosmosPagedIterable readAllItems(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class classType)
Lê todos os itens de uma partição lógica retornando os resultados como CosmosPagedIterable<T> .
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
partitionKey
- o valor da chave de partição dos documentos que precisam ser lidos
options
- as opções de feed.
classType
- o tipo de classe.
Returns:
readAllItems
public CosmosPagedIterable readAllItems(PartitionKey partitionKey, Class classType)
Lê todos os itens de uma partição lógica retornando os resultados como CosmosPagedIterable<T> .
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
partitionKey
- o valor da chave de partição dos documentos que precisam ser lidos
classType
- o tipo de classe.
Returns:
readItem
public CosmosItemResponse readItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class itemType)
Lê um item no contêiner atual ao especificar opções adicionais.
Essa operação é usada para recuperar um único item de um contêiner com base em sua ID (identificação exclusiva) e chave de partição. A operação readItem fornece acesso direto a um item específico usando seu identificador exclusivo, que consiste na ID do item e no valor da chave de partição. Essa operação é eficiente para recuperar um item conhecido por sua ID e chave de partição sem a necessidade de consultas complexas.
Parameters:
itemId
- a ID do item.
partitionKey
- a chave de partição.
options
- as opções (opcional).
itemType
- o tipo de classe de item.
Returns:
a resposta do item do Cosmos.
readItem
public CosmosItemResponse readItem(String itemId, PartitionKey partitionKey, Class itemType)
Lê um item no contêiner atual.
Essa operação é usada para recuperar um único item de um contêiner com base em sua ID (identificação exclusiva) e chave de partição. A operação readItem fornece acesso direto a um item específico usando seu identificador exclusivo, que consiste na ID do item e no valor da chave de partição. Essa operação é eficiente para recuperar um item conhecido por sua ID e chave de partição sem a necessidade de consultas complexas.
// 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
- a ID do item.
partitionKey
- a chave de partição.
itemType
- o tipo de classe de item.
Returns:
a resposta do item do Cosmos.
readMany
public FeedResponse readMany(List itemIdentityList, Class classType)
Lê muitos documentos. Útil para ler muitos documentos com uma ID específica e uma chave de partição em uma única solicitação. Se algum documento da lista estiver ausente, nenhuma exceção será gerada.
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 do CosmosItem e tupla de chave de partição de itens que precisam ser lidos
classType
- tipo de classe
Returns:
um Mono com resposta de feed de itens do Cosmos
readMany
public FeedResponse readMany(List itemIdentityList, String sessionToken, Class classType)
Lê muitos documentos. Útil para ler muitos documentos com uma ID específica e uma chave de partição em uma única solicitação. Se algum documento da lista estiver ausente, nenhuma exceção será gerada.
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 do CosmosItem e tupla de chave de partição de itens que precisam ser lidos
sessionToken
- o token de sessão opcional – nulo se a leitura puder ser feita sem um token de sessão específico
classType
- tipo de classe
Returns:
um Mono com resposta de feed de itens do Cosmos
replaceItem
public CosmosItemResponse replaceItem(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
Substitui um item existente em um contêiner por um novo item. Ele executa uma substituição completa do item, substituindo todas as suas propriedades pelas propriedades do novo item
CosmosItemResponse<Passenger> response = cosmosContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions());
Parameters:
item
- o item.
itemId
- a ID do item.
partitionKey
- a chave de partição.
options
- as opções.
Returns:
a resposta do item do Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item)
Faz upserts de um item do Cosmos no contêiner atual.
Parameters:
item
- o item.
Returns:
a resposta do item do Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item, CosmosItemRequestOptions options)
Faz upserts de um item de sincronização do Cosmos ao especificar opções adicionais.
Parameters:
item
- o item.
options
- as opções.
Returns:
a resposta do item do Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)
Faz upserts de um item de sincronização do Cosmos ao especificar opções adicionais.
Parameters:
item
- o item.
partitionKey
- a partitionKey.
options
- as opções.
Returns:
a resposta do item do Cosmos.
executeBulkOperations
public Iterable> executeBulkOperations(Iterable operations)
Executa a lista de operações em massa.
Parameters:
operations
- lista de operações que serão executadas por esse contêiner.
Returns:
executeBulkOperations
public Iterable> executeBulkOperations(Iterable operations, CosmosBulkExecutionOptions bulkOptions)
Executa a lista de operações em massa.
Parameters:
operations
- lista de operações que serão executadas por esse contêiner.
bulkOptions
- Opções que se aplicam a essa solicitação em massa que especifica opções relacionadas à execução, como simultaneidade, tamanho do envio em lote, intervalo e contexto.
Returns:
delete
public CosmosContainerResponse delete()
Exclui o contêiner atual do Cosmos.
Returns:
a resposta do contêiner cosmos.
delete
public CosmosContainerResponse delete(CosmosContainerRequestOptions options)
Exclui o contêiner atual do Cosmos ao especificar opções adicionais, como If-Match.
Parameters:
options
- as opções.
Returns:
a resposta do contêiner cosmos.
deleteAllItemsByPartitionKey
public CosmosItemResponse deleteAllItemsByPartitionKey(PartitionKey partitionKey, CosmosItemRequestOptions options)
Exclui todos os itens no contêiner com o valor partitionKey especificado. Inicia uma operação em segundo plano assíncrona do Cosmos DB que exclui todos os itens no Contêiner com o valor especificado. A operação em segundo plano do Cosmos DB assíncrona é executada usando uma porcentagem de RUs de usuário.
Parameters:
partitionKey
- a chave de partição.
options
- as opções.
Returns:
a resposta do item do Cosmos
deleteItem
public CosmosItemResponse deleteItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
Exclui um item no contêiner atual.
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
- a ID do item.
partitionKey
- a chave de partição.
options
- as opções.
Returns:
a resposta do item do Cosmos.
enableGlobalThroughputControlGroup
public void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig)
Habilite o grupo de controle de taxa de transferência com o modo de controle global. O limite de taxa de transferência definido será compartilhado entre clientes diferentes.
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
- A configuração do grupo de controle de taxa de transferência, consulte GlobalThroughputControlGroup .
enableLocalThroughputControlGroup
public void enableLocalThroughputControlGroup(ThroughputControlGroupConfig groupConfig)
Habilite o grupo de controle de taxa de transferência com o modo de controle local.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
container.enableLocalThroughputControlGroup(groupConfig);
Parameters:
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch)
Executa o lote transacional.
Parameters:
cosmosBatch
- Lote com lista de operações e chave de partição que serão executadas por esse contêiner.
Returns:
Um TransactionalBatchResponse que contém detalhes da execução do lote transacional.
Se o lote transacional for executado com êxito, o valor retornado por CosmosBatchResponse#getStatusCode na resposta retornada será definido como 200}.
Se uma operação no lote transacional falhar durante a execução, nenhuma alteração do lote será confirmada e a status da operação com falha será disponibilizada por CosmosBatchResponse#getStatusCode ou pela exceção. Para obter informações sobre as operações que falharam no caso de algum erro do usuário, como conflito, não encontrado etc, a resposta pode ser enumerada.
Isso retorna CosmosBatchOperationResult instâncias correspondentes a cada operação no lote transacional na ordem em que foram adicionadas ao lote transacional.
Para obter um resultado correspondente a uma operação dentro do lote transacional, use CosmosBatchOperationResult#getStatusCode para acessar o status da operação. Se a operação não foi executada ou foi anulada devido à falha de outra operação dentro do lote transacional, o valor desse campo será 424; para a operação que causou a anulação do lote, o valor desse campo indicará a causa da falha.
Se houver problemas como tempos limite de solicitação, Gone, sessão não disponível, falha de rede ou se o serviço de alguma forma retornar 5xx, isso gerará uma exceção em vez de retornar um CosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode na resposta retornada para garantir que o lote transacional tenha sido bem-sucedido.
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
Executa o lote transacional.
Parameters:
cosmosBatch
- Lote com lista de operações e chave de partição que serão executadas por esse contêiner.
requestOptions
- Opções que se aplicam especificamente à solicitação em lote.
Returns:
Um CosmosBatchResponse que contém detalhes da execução do lote transacional.
Se o lote transacional for executado com êxito, o valor retornado por CosmosBatchResponse#getStatusCode na resposta retornada será definido como 200}.
Se uma operação no lote transacional falhar durante a execução, nenhuma alteração do lote será confirmada e a status da operação com falha será disponibilizada por CosmosBatchResponse#getStatusCode ou pela exceção. Para obter informações sobre as operações que falharam no caso de algum erro do usuário, como conflito, não encontrado etc, a resposta pode ser enumerada.
Isso retorna CosmosBatchOperationResult instâncias correspondentes a cada operação no lote transacional na ordem em que foram adicionadas ao lote transacional.
Para obter um resultado correspondente a uma operação dentro do lote transacional, use CosmosBatchOperationResult#getStatusCode para acessar o status da operação. Se a operação não foi executada ou foi anulada devido à falha de outra operação dentro do lote transacional, o valor desse campo será 424; para a operação que causou a anulação do lote, o valor desse campo indicará a causa da falha.
Se houver problemas como tempos limite de solicitação, Gone, sessão não disponível, falha de rede ou se o serviço de alguma forma retornar 5xx, isso gerará uma exceção em vez de retornar um CosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode na resposta retornada para garantir que o lote transacional tenha sido bem-sucedido.
getFeedRanges
public List getFeedRanges()
Obtém uma lista de FeedRange que pode ser usada para paralelizar operações de feed.
List<FeedRange> feedRanges = cosmosContainer.getFeedRanges();
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
Returns:
getId
public String getId()
Obtém a ID do contêiner atual.
Returns:
a ID do contêiner.
getScripts
public CosmosScripts getScripts()
Obtém os scripts do Cosmos usando o contêiner atual como contexto.
Returns:
os scripts de sincronização do Cosmos.
openConnectionsAndInitCaches
@Deprecated public void openConnectionsAndInitCaches()
Preterido
Inicializa o contêiner aquecendo os caches e as conexões para a região de leitura atual.
OBSERVAÇÃO: essa API idealmente deve ser chamada apenas uma vez durante a inicialização do aplicativo antes de qualquer carga de trabalho.
No caso de qualquer erro transitório, o chamador deve consumir o erro e continuar a carga de trabalho regular.
openConnectionsAndInitCaches
@Deprecated public void openConnectionsAndInitCaches(int numProactiveConnectionRegions)
Preterido
Inicializa o contêiner aquecendo os caches e as conexões com um não especificado. de regiões de conexão proativas. Para obter mais informações sobre regiões de conexão proativas, consulte getProactiveConnectionRegionsCount()
OBSERVAÇÃO: essa API deve ser chamada apenas uma vez durante a inicialização do aplicativo antes de qualquer carga de trabalho.
No caso de qualquer erro transitório, o chamador deve consumir o erro e continuar a carga de trabalho regular.
Parameters:
numProactiveConnectionRegions
- o não de regiões às quais se conectar proativamente a partir da lista preferencial de regiões
read
public CosmosContainerResponse read()
Lê o contêiner atual.
Returns:
a resposta do contêiner do Cosmos com o contêiner de leitura.
read
public CosmosContainerResponse read(CosmosContainerRequestOptions options)
Lê o contêiner atual ao especificar opções adicionais, como If-Match.
Parameters:
options
- as opções.
Returns:
a resposta do contêiner do Cosmos.
readThroughput
public ThroughputResponse readThroughput()
Obtém a taxa de transferência do contêiner atual.
try {
ThroughputResponse throughputResponse = cosmosContainer.readThroughput();
System.out.println(throughputResponse);
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Returns:
a resposta de taxa de transferência.
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties)
Substitui as propriedades atuais do contêiner.
Parameters:
containerProperties
- as propriedades do contêiner.
Returns:
a resposta do contêiner cosmos.
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)
Substitui as propriedades de contêiner atuais ao especificar opções adicionais, como If-Match.
Parameters:
containerProperties
- as propriedades do contêiner.
options
- as opções.
Returns:
a resposta do contêiner cosmos.
replaceThroughput
public ThroughputResponse replaceThroughput(ThroughputProperties throughputProperties)
Define a taxa de transferência para o contêiner atual.
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
- as propriedades de taxa de transferência (opcional).
Returns:
a resposta de taxa de transferência.
Aplica-se a