Чтение / запись карты <String, Object> из / в DynamoDB - PullRequest
0 голосов
/ 15 января 2019

У меня есть случай, когда я хочу прочитать карту из DynamoDB на Java. Проблема, с которой я сталкиваюсь, заключается в том, как мне преобразовать карту в POJO на Java. Например, пусть следующим будет содержимое в DB Dynamo

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

В моем Java-сервисе я хочу прочитать это в объект, скажем, как Map. Город, Образование, Возраст - все это собственные классы Java. Как смоделировать эти данные как класс? Будет ли работать следующая модель:

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


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

    private Map<String, Object> someInfo;
}

Есть ли лучший способ сделать это? Я подумал, может быть, я мог бы получить некоторую информацию в виде карты и будет сериализовать и десериализовать объекты в JSON при записи и чтении из таблицы. Будет ли это работать?

1 Ответ

0 голосов
/ 15 января 2019

Почему бы не создать свой собственный 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;
}
...