【问题标题】:Can't set KeyConditionExpression parameter in DynamoDb for Android无法在 DynamoDb for Android 中设置 KeyConditionExpression 参数
【发布时间】:2017-07-31 13:01:47
【问题描述】:

我正在使用适用于 Android 的 Amazon AWS DynamoDB,但是,我无法为查询设置 KeyConditionExpression。

见 [http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/com/amazonaws/mobileconnectors/dynamodbv2/dynamodbmapper/DynamoDBQueryExpression.html][1]。 DynamoDBQueryExpression 类缺少 withKeyConditionExpression() 方法。

我正在尝试对 dynamodb 表进行查询,但我无法设置关键条件值。

【问题讨论】:

    标签: android amazon-web-services


    【解决方案1】:

    很遗憾 keyConditionExpression Java / Android 不再存在。我浪费了大量时间,因为它仍然适用于 Objective-C / iOS。

    而且由于所有 AWS 文档仍然引用它,我认为我错了。一旦我编写好新代码并开始工作,我将在此处记录替换。

    【讨论】:

      【解决方案2】:

      keyConditionExpression 设置如下:

      AWSDynamoDBQueryExpression *queryExpression = [AWSDynamoDBQueryExpression new];
      queryExpression.keyConditionExpression = @"#bookId = :bookId";
      queryExpression.expressionAttributeNames = @{
                                                   @"#bookId" : @"bookId",
                                                   };
      queryExpression.expressionAttributeValues = @{
                                                    @":bookId" : self.selectedBookId,
                                                    };
      

      【讨论】:

        【解决方案3】:

        我的 Android 应用程序遇到了类似的问题,其中 .withKeyConditionExpression() 方法出错。而不是那个,我使用:

        TestTable 对象 = new TestTable();
        object.setHashKeyValue("12345"); //设置HashKey的值

        String queryString = "溢出";

        条件 rangeKeyCondition = new Condition() .withComparisonOperator(ComparisonOperator.BEGINS_WITH.toString()) .withAttributeValueList(new AttributeValue().withS(queryString.toString()));

        DynamoDBQueryExpression newQueryExpression = new DynamoDBQueryExpression() .withHashKeyValues(对象)
        .withRangeKeyCondition("AttributeName", rangeKeyCondition)
        .withConsistentRead(false);

        PaginatedQueryList 结果 = mapper.query(TestTable.class, newQueryExpression);

        重点是,如果是查询表,HashKey 和 RangeKey 将是表的分区键,如果是查询索引,HashKey 和 Range Key 将是索引的分区键.

        确保在 Table Class 中正确使用 Annotations,并将 Index 的 ARN 添加到 Policy 中进行授权。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-12-16
          • 2015-11-13
          • 2021-11-03
          • 1970-01-01
          • 1970-01-01
          • 2013-10-21
          • 1970-01-01
          相关资源
          最近更新 更多