DynamoDB - 指定两个索引名称@DynamoDbIndexHashkey globalSecondaryIndexName

DynamoDB - Specify two index names @DynamoDbIndexHashkey globalSecondaryIndexName

我有一个 DynamoDB table,其中 2 个 GSI 具有相同的哈希键但范围键不同。我不知道如何在 @DynamoDBIndexHashKey 属性 -

中表示 2 个索引名称 (globalSecondaryIndexName)
Table
entityid<br/>
placeid<br/>
starttime<br/>
endtime<br/>

GSI 1 - hashkey : placeid, rangekey : starttime<br/>
GSI 2 - hashkey : placeid, rangekey : endtime

@DynamoDBIndexHashKey( attributeName = "placeid" globalSecondaryIndexName= "placeid-starttime-index" )<br>
private String placeid;

如何在此处指定第二个索引名称

@dynamodbindexhashkey 注释也采用数组作为索引名称。

查看下方 link 以获取文档。

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBIndexHashKey.html

您必须在字符串数组 globalSecondaryIndexNames 中指定索引名称:

@DynamoDBIndexHashKey( attributeName = "placeid" globalSecondaryIndexNames={  "placeid-starttime-index","placeid-endtime-index"} )
private String placeid;

DynamoDBIndexHashKey 批注接受单个字符串值和数组作为其参数中的索引名称。

**globalSecondaryIndexName** - Receives a String as index name.
**globalSecondaryIndexNames** -Receives an array of index names. 

因此,您可以设置多个索引名称,如下所示:

@DynamoDBIndexHashKey(attributeName = "placeid" globalSecondaryIndexNames={"placeid-starttime-index", "placeid-endtime-index"})
private String placeid;