DynamoDB映射器映射集合数据类型

Aru*_*shi 2 java amazon-web-services amazon-dynamodb

我正在尝试使用DynamoDB Mapper注释通过自定义定义的类映射到DynamoDB表:

public class MyClass {
  String string1;
  List<String> stringList;
  Boolean flag;
  Map<String, String> map;
}
Run Code Online (Sandbox Code Playgroud)

我知道DDB映射器支持有限的数据类型。http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.DataTypes.html

但是我该如何映射这个课程呢?关于如何映射列表和映射的任何帮助。

not*_*est 5

DynamoDB映射器将基于Java类型自动解释并分配正确的DynamoDB数据类型。

如果要专门分配DDB数据类型,则可以使用DynamoDBTyped注释。

请在下面的示例中参考boolean属性。

import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperFieldModel.DynamoDBAttributeType;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTyped;

@DynamoDBTable(tableName = "yourTableName")
public class MyClass {

    String string1;
    List<String> stringList;
    Boolean flag;
    Map<String, String> map;

    @DynamoDBHashKey(attributeName = "string1")
    public String getString1() {
        return string1;
    }

    public void setString1(String string1) {
        this.string1 = string1;
    }

    @DynamoDBAttribute(attributeName = "stringList")
    public List<String> getStringList() {
        return stringList;
    }

    public void setStringList(List<String> stringList) {
        this.stringList = stringList;
    }

    @DynamoDBTyped(DynamoDBAttributeType.BOOL)
    public Boolean getFlag() {
        return flag;
    }

    public void setFlag(Boolean flag) {
        this.flag = flag;
    }

    @DynamoDBAttribute(attributeName = "map")
    public Map<String, String> getMap() {
        return map;
    }

    public void setMap(Map<String, String> map) {
        this.map = map;
    }

}
Run Code Online (Sandbox Code Playgroud)