我找不到使用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”索引添加分数。如何使用注释?
答案 0 :(得分:4)
属性投影在索引创建时设置,而不是由注释(当前)确定。无法将属性标记为带注释的属性投影的一部分。查看DynamoDBMapper.generateCreateTableRequest(Class<?> clazz)
的Javadoc:
解析给定的POJO类并返回给出的CreateTableRequest 它代表的DynamoDB表。请注意,返回的请求不会 包括主要的必需ProvisionedThroughput参数 表和GSI,以及所有二级索引都已初始化 使用默认投影类型 - KEY_ONLY。
这个关键部分是默认投影类型 - KEY_ONLY 。如果使用此API创建表,则必须自己指定投影。