使用@DBDocument注释时,Dynamodb映射器无法读取

时间:2017-09-13 23:34:04

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

我有一个Entity类,它有一些字符串/整数作为成员变量和一个类型为Photo的成员变量。我已将照片类型定义为:

@DynamoDBDocument
public static class Photo {
    @DynamoDBAttribute(attributeName = "url")
    public String getUrl() {
        return url;
    }

    @DynamoDBAttribute(attributeName = "width")
    public Integer getWidth() {
        return width;
    }

    @DynamoDBAttribute(attributeName = "height")
    public Integer getHeight() {
        return height;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public void setWidth(Integer width) {
        this.width = width;
    }

    public void setHeight(Integer height) {
        this.height = height;
    }

    private String url;
    private Integer width;
    private Integer height;

    public Photo(String url, Integer width, Integer height) {
        this.url = url;
        this.width = width;
        this.height = height;
    }
}

当我尝试编写实体对象时,我可以看到Photo类型存储为地图(M)。

但是当我尝试从发电机读取同一个实体时,它会给出异常:

com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: PostingPhotoEntity[detail]; could not unconvert attribute

如果我必须为Photo定义convert / unrevert,那么@DBDocument注释的用途是什么。我原以为它也可以从表中反序列化数据。

请帮忙!

1 个答案:

答案 0 :(得分:2)

我必须为Photo

定义默认构造函数
public Photo() { }