DynamoDB Mapper映射集合数据类型

时间:2017-06-20 13:02:20

标签: java amazon-web-services amazon-dynamodb

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

MyList

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

但是我该如何映射这个类呢?有关如何映射列表和地图的任何帮助。

1 个答案:

答案 0 :(得分:4)

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

如果要专门分配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;
    }

}