编组未确定的数据类型

时间:2017-03-24 11:47:23

标签: android amazon-web-services amazon-dynamodb aws-sdk

使用自定义Marshaller我尝试将DynamoDB查询映射到对象

class ownObject {
  private int myInteger;

  @DynamoDBMarshalling(marshallerClass = MasrshallAsInteger.class)
  @DynamoDBAttribute      
  public int getMyInteger {
    return myInteger;
  }

  public void setMyInteger(int newint) {
    myInteger = newint;
  }
}

由于db中的值myInteger包含StringNumber两种类型,因此SDK会抛出异常:“预期的值为{N:123,}的S” 如果我不使用marshaller和“预期N值{S:123,}”,如果我不这样做。

有没有办法强制DynamoDB使用自定义编组器并将Key的值解析为String?或者有没有其他方法来解析未确定类型的数据,但使用PaginatedQueryList

1 个答案:

答案 0 :(得分:1)

我建议您使用Document SDK进行分页,将项目解析为Item对象,paginate,然后将这些项目转换为您的域名。

Table table = new AmazonDynamoDBClient(new DefaultCredentialsProviderChain()).getTable("ownObject");
for (Item item : table.scan()) {
    //convert item to your domain object here
}