我在一张表上有一个带有哈希和范围键的全局二级索引。我想获取具有特定哈希键和某个可能范围值列表的单个查询条目。
我试过这个,但得到一个例外:
DynamoDBQueryExpression<MyClass> queryExpression = new DynamoDBQueryExpression<>();
queryExpression.setIndexName("globalSecondaryIndexName");
queryExpression.setConsistentRead(false);
queryExpression.setHashKeyValues(new MyClass(indexHashKeyValue));
Map<String, Condition> rangeKeyConditions = new HashMap<>();
rangeKeyConditions.put("rangeKeyName", new Condition().withComparisonOperator(ComparisonOperator.IN).
withAttributeValueList(ids.stream().map(AttributeValue::new).collect(Collectors.toList())));
queryExpression.setRangeKeyConditions(rangeKeyConditions);
PaginatedQueryList<MyClass> paginatedQueryList = db.query(MyClass.class, queryExpression);
得到这个例外:
线程“主”com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException 中的异常:尝试的条件约束不是可索引操作(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求 ID:4c7d2a81-ad80-4f06- b565-939716adfc20)
还尝试了ComparisonOperator.EQ,但得到:线程“main”com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException中的异常:一个或多个参数值无效:EQ ComparisonOperator的参数数量无效