小编Ste*_*eld的帖子

使用 DynamoDB 二级索引查询 AWS SDK 2 Java 异常创建 DynamoDbIndex 对象

我在对二级索引运行查询时遇到问题,出现异常:

Ex 获取 dynamodb 扫描:java.lang.IllegalArgumentException:尝试执行需要二级索引的操作,而不定义表元数据中的索引属性。索引名称:category-timestamp-index

有人可以指导我如何做错吗?

我的表是 idIT_RSS_Sources 并且我创建了一个索引类别时间戳索引。

附上索引截图

我的代码是:

DynamoDbEnhancedClient enhancedClient = getEnhancedDBClient(region);

 // Create a DynamoDbTable object

logger.debug("getting RSS Source category-timestamp-index");

//this throws the exception         
DynamoDbIndex<RSS_Source> catIndex = 
        enhancedClient.table("idIT_RSS_Sources", 
        TableSchema.fromBean(RSS_Source.class))
         .index("category-timestamp-index");


                logger.debug("building query attributes");

                AttributeValue att = AttributeValue.builder()
                        .s(theCategory)
                        .build();

                Map<String, AttributeValue> expressionValues = new HashMap<>();
                expressionValues.put(":value", att);

                Expression expression = Expression.builder()
                        .expression("category = :value")
                        .expressionValues(expressionValues)
                        .build();


                // Create a QueryConditional object that's used in the query operation
                QueryConditional queryConditional = QueryConditional
                        .keyEqualTo(Key.builder().partitionValue(theCategory)
                        .build());

                logger.debug("calling catIndex.query in …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb aws-sdk-java

2
推荐指数
3
解决办法
2843
查看次数

标签 统计

amazon-dynamodb ×1

aws-sdk-java ×1