使用dynamodb映射器将属性投影到索引

时间:2015-03-09 11:56:56

标签: java amazon-dynamodb

我找不到使用dynamodb mapper注释将选定属性(不是hashkey)投影到索引中的方法。

考虑一个例子:

@DynamoDBTable(tableName = "scores")
public class DynaScoreItem {
    @DynamoDBHashKey
    int user;
    @DynamoDBRangeKey
    int level;
    @DynamoDBAttribute
    int score;
    @DynamoDBIndexRangeKey(localSecondaryIndexName = "sort_by_added")
    long added;
}

我只想为“sort_by_added”索引添加分数。如何使用注释?

1 个答案:

答案 0 :(得分:4)

属性投影在索引创建时设置,而不是由注释(当前)确定。无法将属性标记为带注释的属性投影的一部分。查看DynamoDBMapper.generateCreateTableRequest(Class<?> clazz)的Javadoc:

  

解析给定的POJO类并返回给出的CreateTableRequest   它代表的DynamoDB表。请注意,返回的请求不会   包括主要的必需ProvisionedThroughput参数   表和GSI,以及所有二级索引都已初始化   使用默认投影类型 - KEY_ONLY。

这个关键部分是默认投影类型 - KEY_ONLY 。如果使用此API创建表,则必须自己指定投影。