[DynamoDB]:我可以使用DynamoDBMapper在DynamoDB的多个表之间共享单个数据模型吗?

时间:2018-11-13 18:33:50

标签: java amazon-dynamodb

我有多个表,它们遵循相同的数据建模结构。基本上,我有不同类型的订单,并且根据其类型,我要根据它们的类型从表中保存和检索订单。

示例:

  • 订单类型:A |表格:Order_A
  • 订单类型:B |表格:Order_B
  • 订单类型:C |表格:Order_C

所有表都具有相同的数据模型。

结构:

OrderID,Date ...

我正在使用DynamoDbMapper。由于DynamoDbMapper需要

  

@DynamoDBTable(tablename = TABLE)

课堂注释。如何在所有订单表中共享同一模型?

@DynamoDBTable(tablename=TABLE)    
public class Order{
        public String orderID; 
        public String date;

    }

1 个答案:

答案 0 :(得分:1)

DynamoDBMapper允许您提供一些可选的配置,包括覆盖表名。

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build();

// In all cases, setting null tells DynamoDBMapper to use the default value 
DynamoDBMapperConfig mapperConfig = new DynamoDBMapperConfig(
    null, // Save behavior
    null, //ConsistentReads
    “TableName”, //TableNameOverride
    null // PaginationLoadingStrategy
);

DynamoDBMapper mapper = new DynamoDBMapper(client, mapperConfig, cp);

您还可以基于每个操作提供DynamoDBMapperConfig。

请参见https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.OptionalConfig.html