Ajustes de configuración opcionales para DynamoDBMapper
Al crear una instancia de DynamoDBMapper
, presenta algunos comportamientos predeterminados que se pueden anular mediante la clase DynamoDBMapperConfig
.
En el siguiente fragmento de código se crea una clase DynamoDBMapper
con ajustes personalizados:
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 obtener más información, consulte DynamoDBMapperConfig en la Referencia de la API de AWS SDK for Java.
Puede usar los argumentos siguientes para una instancia de DynamoDBMapperConfig
:
-
Un valor de enumeración
DynamoDBMapperConfig.ConsistentReads
:-
EVENTUAL
: la instancia de mapeador utiliza una solicitud de lectura consistente final. -
CONSISTENT
: la instancia de mapeador utiliza una solicitud de lectura de consistencia alta. Puede usar este ajuste opcional con las operacionesload
,query
oscan
operations. Las lecturas de consistencia alta afectan al rendimiento y a la facturación; consulte la página detalles del productode DynamoDB para obtener más información.
Si no especifica un ajuste de consistencia de lectura para la instancia de mapeador, el valor predeterminado es
EVENTUAL
.nota
Este valor se aplica en las operaciones
query
,querypage
,load
, ybatch load
de DynamoDBMapper. -
-
Un valor de enumeración
DynamoDBMapperConfig.PaginationLoadingStrategy
: controla cómo la instancia de mapeador procesa una lista de datos paginados, como los resultados de una operaciónquery
oscan
:-
LAZY_LOADING
: la instancia de mapeador carga los datos cuando es posible y conserva todos los resultados cargados en la memoria. -
EAGER_LOADING
: la instancia de mapeador carga los datos tan pronto como se inicializa la lista. -
ITERATION_ONLY
: solo se puede usar un iterador para leer datos en la lista. Durante la iteración, la lista borrará todos los resultados anteriores antes de cargar la página siguiente, para que la lista conserve como máximo una página de resultados cargados en la memoria. Por consiguiente, la lista solamente se puede recorrer en iteración una vez. Esta estrategia se recomienda para administrar elementos de gran tamaño, con el fin de reducir la sobrecarga de la memoria.
Si no especifica una estrategia de carga de paginación para la instancia de mapeador, el valor predeterminado es
LAZY_LOADING
. -
-
Un valor de enumeración
DynamoDBMapperConfig.SaveBehavior
: especifica cómo la instancia de mapeador administrará los atributos durante las operaciones de almacenamiento:-
UPDATE
: durante una operación de almacenamiento, se actualizan todos los atributos modelados y los atributos no modelados no sufren cambios. Los tipos numéricos primitivos (byte, int, long) se establecen en 0. Los tipos de objeto se establecen en null. -
CLOBBER
: borra y sustituye los atributos, incluidos los no modelados, durante una operación de almacenamiento. Para ello, se elimina el elemento y se vuelve a crear. También se descartan las restricciones de los campos con versiones.
Si no especifica el comportamiento al guardar para la instancia de mapeador, el valor predeterminado es
UPDATE
.nota
Las operaciones transaccionales de DynamoDBMapper no admiten la enumeración
DynamoDBMapperConfig.SaveBehavior
. -
-
Un objeto
DynamoDBMapperConfig.TableNameOverride
: indica a la instancia de mapeador que pase por alto el nombre de tabla especificado por la anotaciónDynamoDBTable
de la clase y, en su lugar, use el nombre de tabla alternativo suministrado. Esto resulta útil cuando se particionan los datos en varias tablas en tiempo de ejecución.
Puede anular el objeto de configuración predeterminado para DynamoDBMapper
en cada operación, conforme lo necesite.