DynamoDB Mapper без схемы - PullRequest
       9

DynamoDB Mapper без схемы

0 голосов
/ 20 сентября 2018

Я пытаюсь использовать DynamoDB для его функции без схемы и пытаюсь соответствовать модели данных, как показано ниже.В этом случае я пытаюсь перегрузить первичные ключи таблицы, чтобы поместить аналогичные данные в одну таблицу.

import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBDocument;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBRangeKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;

@Getter(AccessLevel.PUBLIC)
@Setter(AccessLevel.PROTECTED)
@ToString
@SuperBuilder
@DynamoDBTable(tableName = "POC")
public class ParentModel {
  @DynamoDBHashKey(attributeName = "partitionKey")
  private String partitionKey;
  @DynamoDBRangeKey(attributeName = "sortKey")
  private String sortKey;

  @Getter
  @Setter
  @ToString
  @SuperBuilder
  @DynamoDBTable(tableName = "POC")
  public static class ChildModelOne extends ParentModel {
    @DynamoDBAttribute(attributeName = "fieldOne")
    private String fieldOne;
    @DynamoDBAttribute(attributeName = "fieldTwo")
    private String fieldTwo;
  }

  @Getter
  @Setter
  @ToString
  @SuperBuilder
  @DynamoDBTable(tableName = "POC")
  public static class ChildModelTwo extends ParentModel {
    @DynamoDBAttribute(attributeName = "fieldThree")
    private String fieldThree;
    @DynamoDBAttribute(attributeName = "fieldFour")
    private DocuModel fieldFour;

    @Getter
    @Setter
    @ToString
    @SuperBuilder
    @DynamoDBDocument
    public static class DocuModel {
      @DynamoDBAttribute(attributeName = "fieldFive")
      private String fieldFive;
      @DynamoDBAttribute(attributeName = "fieldSix")
      private String fieldSix;
    }
  }
}

Однако DynamoDBMapper вызывает исключение Mapping следующим образом;com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: ChildModelOne; no mapping for HASH key.

Поддерживает ли DynamoDB наследование модели описанным выше способом?Если да, то где я ошибаюсь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...