Я использовал 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;