Sto provando a interrogare DynamoDB con l'aiuto di DynamoDBMapper in Java con hashKey e rangeKey. Ma non sto ottenendo tutti i risultati, ne restituisce solo una parte. Il mio codice è simile:Come posso recuperare tutti gli elementi dal risultato impaginato di una query 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
è correttamente annotato con annotazioni DynamoDB. Quindi sono in grado di salvare gli oggetti, ma il recupero restituisce solo un risultato parziale.
La documentazione di interrogazione entro DynamoDBMapper dice:
Il metodo query restituisce la collezione "pigro-caricato". Cioè, inizialmente restituisce solo una pagina di risultati. Effettua una chiamata di servizio per la pagina successiva quando necessario.
Ora la domanda è, come dire al mappatore di effettuare una chiamata di servizio o che è necessaria una pagina, quindi carica tutte le pagine (effettivamente tutte le voci)?
Aperto, sono d'accordo con la tua risposta, sembra che io sia nello stesso problema. La domanda è qui, https://stackoverflow.com/questions/45495145/issue-with-caching-and-dynamo-db-combination – Deepak