DynamoDB POJO需要实现序列化吗?

时间:2015-08-17 08:02:47

标签: java serialization amazon-dynamodb

我将大量数据保存到Amazon DynamoDB中。我使用AmazonDynamoDBClient(有时是DynamoDBMapper)来执行这些任务。

这是一个说明该过程的例子:

@Data
@DynamoDBTable(tableName = "Results")
public class Result extends DynamoEntity {

  @DynamoDBHashKey
  private String hashKey;

  @DynamoDBAttribute
  private String period;
  @DynamoDBAttribute
  private String customerId;
  @DynamoDBAttribute
  private double actualCost;
  @DynamoDBAttribute
  private double estimatedCost;

  @DynamoDBHashKey
  public String getHashKey() {
    if (hashKey == null) {
      hashKey = period + "-" + customerId;
    }
    return hashKey;
  }

}

保存记录:

private static final AmazonDynamoDB amazonDynamoDB = new AmazonDynamoDBClient();
private static final DynamoDBMapper mapper = new DynamoDBMapper(amazonDynamoDB);

mapper.save(record);

一切正常,但我只是想知道是否应该将Serializable实现到保存到DB中的所有POJO(当然,它们通过网络发送)。这是一个好习惯还是我应该避免它?

1 个答案:

答案 0 :(得分:2)

我认为DynamoDbMapper适用于主要数据类型,如字符串,整数,日期等开箱即用。对于复杂类型的序列化,您需要拥有自己的自定义编组器来实现DynamoDBMarshaller并在您的类型上使用它们。如果你想使用内置JsonMarshaller的json,它应该使用jackson,它完全不依赖于Serializable

使用上面提到的类型,我觉得你不需要它。