1

我在一张表上有一个带有哈希和范围键的全局二级索引。我想获取具有特定哈希键和某个可能范围值列表的单个查询条目。

我试过这个,但得到一个例外:

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的参数数量无效

4

0 回答 0