DynamoDB - получить несколько элементов, передав массив значений в хэш-ключ в Android - PullRequest
0 голосов
/ 16 января 2019

Я использовал scanExpression для извлечения данных из DynamoDB, используя Arraylist для извлечения нескольких данных по ключу Hash, но я хочу преобразовать свое ScanExpression в queryExpression

Map<String, String> expressionAttributesNames = new HashMap<>();
                expressionAttributesNames.put("#itemId", "itemId");
                List<String> queryList = new ArrayList<String>();
                Map<String, AttributeValue> expressionAttributeValues = new HashMap<>();
                for (int i = 0; i < cartProducts.length(); i++) {
                    try {
                        expressionAttributeValues.put(":pointValue" + i, new AttributeValue().withS(cartProducts.getJSONObject(i).getString("itemId")));
                        queryList.add(":pointValue" + i);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
                CartProductDO cartProductDO = new CartProductDO();
                String query = "#itemId IN (" + queryList.toString().replaceAll("[\\[.\\]]", "") + ")";
              DynamoDBScanExpression scanExpression = new DynamoDBScanExpression()                            .withFilterExpression(query)                            .withExpressionAttributeNames(expressionAttributesNames)                          .withExpressionAttributeValues(expressionAttributeValues);

Список scanResult = mapper.scan (CartProductDO.class, scanExpression);return scanResult;

...