Definições de configuração opcionais para DynamoDBMapper
Quando você cria uma instância de DynamoDBMapper
, ela tem certos comportamentos padrão que podem ser substituídos com o uso da classe DynamoDBMapperConfig
.
O seguinte trecho de código cria um DynamoDBMapper
com configurações personalizadas:
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDBMapperConfig mapperConfig = DynamoDBMapperConfig.builder() .withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.CLOBBER) .withConsistentReads(DynamoDBMapperConfig.ConsistentReads.CONSISTENT) .withTableNameOverride(null) .withPaginationLoadingStrategy(DynamoDBMapperConfig.PaginationLoadingStrategy.EAGER_LOADING) .build(); DynamoDBMapper mapper = new DynamoDBMapper(client, mapperConfig);
Para obter mais informações, consulte DynamoDBMapperConfig na Referência da API do AWS SDK for Java.
Como alternativa, você pode usar os seguintes argumentos para uma instância de DynamoDBMapperConfig
:
-
Um valor de enumeração
DynamoDBMapperConfig.ConsistentReads
:-
EVENTUAL
: a instância de mapeador usa uma solicitação de leitura eventualmente consistente. -
CONSISTENT
: a instância do mapeador usa uma solicitação de leitura fortemente consistente. É possível usar essa configuração opcional com operaçõesload
,query
ouscan
. Leituras altamente consistentes têm implicações sobre a performance e a cobrança. Consulte a página de detalhes do produtodo DynamoDB para obter mais informações.
Se você não especificar uma configuração de consistência de leitura para sua instância de mapeador, o padrão será
EVENTUAL
.nota
Esse valor é aplicado em operações
query
,querypage
,load
ebatch load
do DynamoDBMapper. -
-
Um valor de enumeração
DynamoDBMapperConfig.PaginationLoadingStrategy
: controla como a instância de mapeador processa uma lista paginada de dados, como os resultados de umquery
ouscan
:-
LAZY_LOADING
: a instância do mapeador carrega dados quando possível e mantém todos os resultados carregados na memória. -
EAGER_LOADING
: a instância de mapeador carrega os dados assim que a lista é inicializada. -
ITERATION_ONLY
: você só pode usar um iterador para ler da lista. Durante a iteração, a lista limpará todos os resultados anteriores antes de carregar a próxima página e, portanto, ela manterá no máximo uma página dos resultados carregados na memória. Isso também significa que a lista só pode ser iterada uma vez. Essa estratégia é recomendada ao lidar com itens grandes, a fim de reduzir a sobrecarga de memória.
Se você não especificar uma estratégia de carregamento de paginação para a sua instância de mapeador, o padrão será
LAZY_LOADING
. -
-
Um valor de enumeração
DynamoDBMapperConfig.SaveBehavior
: especifica como a instância de mapeador deve lidar com atributos durante operações de salvamento:-
UPDATE
: durante uma operação de gravação, todos os atributos modelados são atualizados, enquanto os atributos não modelados não são afetados. Tipos de números primitivos (byte, int, long) são definidos como 0. Tipos de objetos são definidos como nulos. -
CLOBBER
: limpa e substitui todos os atributos, incluindo os não modelados, durante uma operação de gravação. Isso é feito excluindo-se o item e o recriando. Restrições de campo com versionamento também são desconsideradas.
Se você não especificar o comportamento de salvamento para sua instância de mapeador, o padrão será
UPDATE
.nota
As operações transacionais do DynamoDBMapper não são compatíveis com a enumeração do
DynamoDBMapperConfig.SaveBehavior
. -
-
Um objeto
DynamoDBMapperConfig.TableNameOverride
instrui a instância do mapeador a ignorar o nome de tabela especificado pela anotaçãoDynamoDBTable
de uma classe e, em vez disso, usar um nome de tabela diferente que você fornece. Isso é útil ao particionar dados em várias tabelas no tempo de execução.
Você pode substituir o objeto de configuração padrão para DynamoDBMapper
por operação, conforme necessário.