我从我的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());
感谢您的帮助
答案 0 :(得分:2)
使用@DynamoDBIgnore
注释额外属性。根据文档here:
<强> DynamoDBIgnore 强>
向DynamoDBMapper实例指示关联的属性 应该被忽略。将数据保存到表时,DynamoDBMapper 不会将此属性保存到表中。