AmazonDynamoDBのUserクラスをマッピングする必要があります。 Userオブジェクトのプロパティの1つは、AccountType(列挙型)です。これをどのように処理しますか?以下は、私が試した列挙型とコードです。
public enum AccountType {
TYPE_A,
TYPE_B
}
-
@DynamoDBAttribute(attributeName="AccountType") *<< THIS FAILS*
public AccountType getAccountType() {
return accountType;
}
どんな助けでもいただければ幸いです。
Amazon DynamoDB の高レベルAPI(Object Persistence model) AWS SDK for Java はまだenum
をサポートしていません。 サポートされているデータ型 を参照してください:
Amazon DynamoDBは、次のプリミティブデータ型とプリミティブラッパークラスをサポートしています。
- ストリング
- ブール、ブール
- バイト、バイト
- 日付(ISO8601ミリ秒精度の文字列としてUTCにシフト)
- カレンダー(ISO8601ミリ秒精度の文字列としてUTCにシフト)
- 長い、長い
- 整数、int
- ダブル、ダブル
- フロート、フロート
- BigDecimal
- BigInteger
ただし、Amazon DynamoDBは原則として任意のデータ型をサポートしているため、その制限を回避できる可能性があります。 Amazonを使用した任意のデータのマッピング)を参照してください。詳細については、AWS SDK for Java Object Persistence Model を使用するDynamoDB:
サポートされているJavaタイプ[...]に加えて、Amazon DynamoDBタイプへの直接マッピングがないアプリケーションでタイプを使用できます。これらのタイプをマッピングするには、以下を指定する必要があります。複合型をStringのインスタンスに、またはその逆に変換し、@ DynamoDBMarshallingアノテーションタイプを使用して複合型アクセサーメソッドにアノテーションを付ける実装。[...]
AWS SDKは、列挙型を文字列に変換するための特別なアノテーション DynamoDBTypeConvertedEnum をサポートしています。
@DynamoDBTypeConvertedEnum
@DynamoDBAttribute(attributeName="AccountType")
public AccountType getAccountType() {
return accountType;
}