从DynamoDB读取/写入Map <string,object =“”>

时间:2019-01-15 10:58:47

标签: java amazon-web-services amazon-dynamodb pojo dynamodb-queries

我有一个用例,我想从Java中的DynamoDB中读取Map。我面临的问题是如何在Java中将Map转换为POJO。例如,让以下内容成为Dynamo DB中的内容

{
    "someInfo": {
         "age" : {
            minAge : xx,
            maxAge : yy,
          },
         "city" : "abc",
         "education" : {
             "university" : "xyz",
             "major" : "def"
          }
     }
}

在我的Java服务中,我想将此读入一个对象,例如Map。 City,Education,Age都是它们自己的Java类。如何将此数据建模为类?以下模型可以工作吗?

@DynamoDBTable(tableName = "someotherinfo")
@Getter @Setter
public class SomeOtherInfo {


    @DynamoDBHashKey(attributeName = "id")
    private Long id;

    private Map<String, Object> someInfo;
}

是否有更好的方法?我在想,也许我可以将someInfo作为Map使用,并在从表进行读写时将对象序列化和反序列化为JSON。这样行吗?

1 个答案:

答案 0 :(得分:0)

为什么不创建自己的SomeInfo类:

class SomeInfo{
    private City city;
    private Age age;
    private Education education;

    // constructors

    // getters and setters
}

然后引用它而不是地图:

@DynamoDBTable(tableName = "someotherinfo")
@Getter @Setter
public class SomeOtherInfo {

    @DynamoDBHashKey(attributeName = "id")
    private Long id;

    private SomeInfo someInfo;
}