DynamoDB映射器仅在项Java中保存一个属性

时间:2016-06-12 10:45:27

标签: java android amazon-web-services amazon-dynamodb getter-setter

我从我的dynamodb表中获取了一个项目记录,添加了一个属性(userratings),然后再次保存它:

 SongDatabaseMappingAdapter song = mapper.load(SongDatabaseMappingAdapter.class, params[0]);
            song.getUserRatings().add(userID + "-" + params[1] + "-" + sdf.format(date));
            mapper.save(song);

问题出在我的SongDatabaseMappingAdapter中我有一些额外的getter setter用于更新GUI,如下所示:

public Boolean getOneStarRating() {
        return onestarrating;
    }

    public void setOneStarRating(Boolean onestarrating) {

        this.onestarrating = onestarrating;
    }

我需要他们在那里,但我不希望他们保存到我的数据库中的属性但是当我运行我的代码来保存项目时,添加所有属性,这是我的getter / setter中的每个元素(映射适配器)到项目中,所以我最终得到了如下所示的额外属性(列)(下面的所有星级评分都已添加,但不应该在那里):

UserRatings fiveStarRating fourStarRating oneStarRating

所以基本上我想改变我的代码,因此只保存歌曲项目中的userratings属性而不是所有属性。我在考虑下面的内容,但我不知道该怎么做(下面的代码不起作用)

  SongDatabaseMappingAdapter song = mapper.load(SongDatabaseMappingAdapter.class, params[0]);
                song.getUserRatings().add(userID + "-" + params[1] + "-" + sdf.format(date));
                mapper.save(song.setUserRatings());

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

使用@DynamoDBIgnore注释额外属性。根据文档here

  

<强> DynamoDBIgnore

     

向DynamoDBMapper实例指示关联的属性   应该被忽略。将数据保存到表时,DynamoDBMapper   不会将此属性保存到表中。