我正在尝试在dynamodb中设置一个Subscription表来跟踪用户订阅的对象。
我有一个包含2个字符串属性的Subscriptions表,SubscriberID和UserID,并且会像这样设置(为简单起见使用名称):
[SubscriberID] ------ [UserID]
Dave ------ Steve
Dave ------ Josh
Dave ------ Cam
Cam ------ Dave
Cam ------ Justin
所以它会被解释为:戴夫订阅史蒂夫,乔希和卡姆。 Cam订阅了Dave和Justin ......非常简单。
我有一个主键,其中SubscriberID作为分区键,因此我可以查询用户的订阅。我还有一个名为“getSubscribers”的二级索引,它将UserID作为分区键,因此我可以查询用户的订阅者。
每次我尝试保存一个dynamodb映射器对象时,它都没有显示在我的Subscriptions表中,但是我的其他表只有一个主键正在输入正常。
我几乎是肯定的,我的问题在于我的订阅者类上的注释,我已经尝试过研究如何正确设置,我想出的最好的是
@DynamoDBTable(tableName = "starter-mobilehub-1604839252-Subscriptions ")
public class Subscription {
private String SubscriberID;
private String UserID;
@DynamoDBHashKey(attributeName = "SubscriberID")
public String getSubscriberID() {return SubscriberID;}
public void setSubscriberID(String UserID) {this.SubscriberID = UserID;}
@DynamoDBIndexHashKey(globalSecondaryIndexName = "getSubscribers", attributeName = "UserID")
public String getUserID() {return UserID;}
public void setUserID(String UserID) {this.UserID = UserID;}
}
我知道这可能是错的,有谁知道这些注释应该如何正确设置?任何帮助都会很棒。
答案 0 :(得分:0)
我以某种方式想出来了。我删除了GSI,它仍然没有更新到表中。所以我删除并重新添加它没有GSI,它工作,然后添加GSI,它仍然有效。
_(ツ)_ /¯