0

나는 사용자가 누구를 구독했는지 추적하기 위해 dynamodb에 Subscription 테이블을 설정하려고합니다. 데이브 스티브 구독 :어떻게 다이나모 맵 매퍼에 2 차 인덱스를 주석으로 추가합니까?

나는 2 문자열 속성, SubscriberID 및 사용자 ID와 구독에 대한 테이블이 때문에 같은 설정 (편의상 이름을 사용) 다음과 같습니다

[SubscriberID] ------ [UserID] 

    Dave ------ Steve 

    Dave ------ Josh 

    Dave ------ Cam 

    Cam ------ Dave 

    Cam ------ Justin 
그래서

로 해석 될 수를 조쉬, 캠. Cam은 Dave와 Justin ..을 매우 간단하게 구독합니다.

사용자의 구독을 쿼리 할 수 ​​있도록 구독 키 ID를 파티션 키로 사용하는 기본 키가 있습니다. 또한 사용자의 구독자를 쿼리 할 수 ​​있도록 UserID가 파티션 키로있는 "getSubscribers"라는 보조 인덱스가 있습니다.

dynamodb 매퍼 개체를 저장할 때마다 내 구독 테이블에 표시되지 않지만 다른 기본 테이블의 기본 키가 1 개만있는 기본 테이블은 정상적으로 입력됩니다.

내 문제는 내 가입자 클래스 내 주석과 거의 확실 해요, 난이 제대로 설정이 얼마나 연구를 시도했다, 내가 생각 해낸 최선이

@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

나는 그것을 어떻게 든 이해했다. GSI를 제거했지만 여전히 테이블로 업데이트하지 않았습니다. 그래서 GSI없이 제거하고 다시 추가 한 다음 작동하고 GSI를 추가했지만 여전히 작동합니다.

¯_ (ツ) _/¯