31

我需要为 Amazon DynamoDB 映射一个用户类。User 对象的属性之一是 AccountType(枚举)。我该如何处理?下面是我尝试过的枚举和代码。

public enum AccountType {
    TYPE_A,
    TYPE_B
}

-

@DynamoDBAttribute(attributeName="AccountType")   *<< THIS FAILS*
public AccountType getAccountType() {
    return accountType;
}

任何帮助,将不胜感激。

4

2 回答 2

71

AWS 开发工具包支持特殊注释DynamoDBTypeConvertedEnum将枚举转换为字符串。

@DynamoDBTypeConvertedEnum
@DynamoDBAttribute(attributeName="AccountType")
public AccountType getAccountType() {
    return accountType;
}
于 2017-02-27T14:30:18.210 回答
20

AWS SDK for Java提供的Amazon DynamoDB高级 API(对象持久性模型)尚不支持,请参阅支持的数据类型enum

Amazon DynamoDB 支持以下原始数据类型和原始包装类。

  • 细绳
  • 布尔值,布尔值
  • 字节,字节
  • 日期(作为 ISO8601 毫秒精度字符串,转换为 UTC)
  • 日历(作为 ISO8601 毫秒精度字符串,转换为 UTC)
  • 长长的
  • 整数,整数
  • 双倍,双倍
  • 漂浮,漂浮
  • 大十进制
  • 大整数

但是,Amazon DynamoDB原则上支持任意数据类型,因此您可能能够解决该限制,有关详细信息,请参阅使用 AWS SDK for Java Object Persistence Model 使用 Amazon DynamoDB 映射任意数据

除了支持的 Java 类型 [...],您还可以在应用程序中使用没有直接映射到 Amazon DynamoDB 类型的类型。要映射这些类型,您必须提供将复杂类型转换为 String 实例(反之亦然)的实现,并使用 @DynamoDBMarshalling 注释类型注释复杂类型访问器方法。[...]

于 2012-09-26T08:22:49.240 回答