Definições de configuração opcionais para DynamoDBMapper - Amazon DynamoDB

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ções load, query ou scan. Leituras altamente consistentes têm implicações sobre a performance e a cobrança. Consulte a página de detalhes do produto do 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 queryquerypageload e batch 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 um query ou scan:

    • 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ção DynamoDBTable 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.