【问题标题】:DynamoDB Mapper mapping Collection DatatypesDynamoDB Mapper 映射集合数据类型
【发布时间】:2017-06-20 13:02:20
【问题描述】:

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

public class MyClass {
  String string1;
  List<String> stringList;
  Boolean flag;
  Map<String, String> map;
}

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

但是我怎样才能映射这个类呢?关于如何映射列表和地图的任何帮助。

【问题讨论】:

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


    【解决方案1】:

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

    如果要具体指定DDB数据类型,可以使用DynamoDBTyped注解。

    请参考以下示例中的布尔属性。

    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;
        }
    
    }
    

    【讨论】:

    • 嘿@notionquest 非常感谢!刚刚想通了。但特别感谢 DynamoDBTyped。你也可以(stackoverflow.com/questions/44656642/…)看看这个..提前谢谢!!
    • 好的,如果有帮助,请您接受答案吗?
    • @notionquest 以及如何标记地图类型?例如,我有一张带有 Map&lt;String,Boolean&gt; 的地图,现在 dynamoDb 将其存储为 Map&lt;String,Int&gt;(它将布尔值存储为 1 或 0)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    相关资源
    最近更新 更多