Estoy tratando de consultar DynamoDB con la ayuda de DynamoDBMapper en Java con hashKey y rangeKey. Pero no obtengo todos los resultados, solo devuelve una parte. Mi código es el siguiente:¿Cómo puedo recuperar todos los elementos del resultado paginado de una consulta de DynamoDBMapper()?
queryDynamoDb() {
Condition rangeKeyCondition = new Condition()
.withComparisonOperator(ComparisonOperator.GT.toString())
.withAttributeValueList(new AttributeValue().withS("0"));
DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression(
new AttributeValue().withS(prefKey));
queryExpression.setRangeKeyCondition(rangeKeyCondition);
List<MyObj> myobjs = mapper.query(MyObj.class, queryExpression);
return myobjs;
}
MyObj
está anotado correctamente con anotaciones DynamoDB. Así que puedo guardar los objetos, pero la recuperación solo arroja un resultado parcial.
La documentación de consulta dentro DynamoDBMapper dice:
El método de consulta devuelve la colección "-perezoso cargado". Es decir, inicialmente devuelve solo una página de resultados. Hace una llamada de servicio para la siguiente página cuando sea necesario.
Ahora la pregunta es, ¿cómo decirle al mapeador que haga una llamada de servicio o que se necesita una página, por lo que carga todas las páginas (de hecho todas las entradas)?
Abierto, estoy de acuerdo con su respuesta, Parece que estoy en el mismo problema. La pregunta está aquí, https://stackoverflow.com/questions/45495145/issue-with-caching-and-dynamo-db-combination – Deepak