android在dynamodb扫描中使用contains过滤器

5cnsuln7  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(433)

我有awd发电机db表如下。

现在我想过滤它如下。

为此,我使用了以下代码,在我的代码中得到0个结果。我的代码有什么问题。如何修复它?

  1. public ScanResult getAllMemos() {
  2. ScanRequest scanRequest = new ScanRequest()
  3. .withTableName(DB_NAME)
  4. .withFilterExpression("contains(imgName,thumbnail)");
  5. return util.getAmazonDynamoDBClient(getActivity()).scan(scanRequest);
  6. }

没有过滤器表达式,我得到所有的结果。

hc2pp10m

hc2pp10m1#

就像在注解中讨论的那样,您需要用过滤器的值创建一个表达式属性值Map并使用它。
尝试以下操作:

  1. public ScanResult getAllMemos() {
  2. Map<String, AttributeValue> expressionAttributeValues =
  3. new HashMap<String, AttributeValue>();
  4. expressionAttributeValues.put(":val", new AttributeValue().withS("thumbnail"));
  5. ScanRequest scanRequest = new ScanRequest()
  6. .withTableName(DB_NAME)
  7. .withFilterExpression("contains(imgName,:val)")
  8. .withExpressionAttributeValues(expressionAttributeValues);
  9. return util.getAmazonDynamoDBClient(getActivity()).scan(scanRequest);
  10. }

相关问题