0

모바일 응용 프로그램을 사용하여 Dynamo DB 테이블을 쿼리하고 있습니다. 아래 쿼리를 사용하여 Dynamo DB 테스트 테이블에서 항목을 가져 왔습니다.Dynamo DB 인덱스 쿼리 : GSI 및 LSI

Test t = mapper.load (Test.class, DynamoDBHashKey, DynamoDBRangeKey);

제 질문은 글로벌 보조 색인에서 항목을 어떻게 쿼리합니까? 필자는 Test 테이블의 Java 클래스에서 주석과 매개 변수를 올바르게 정의했습니다.

글로벌 보조 인덱스와 로컬 보조 인덱스를 쿼리하는 다른 방법이 있습니까?

답변

1

load api은 GSI를 쿼리하는 데 사용할 수 없습니다. 쿼리 API은 키 속성을 사용하여 GSI를 쿼리하는 데 사용할 수 있습니다.

샘플 코드 : -

Map<String, AttributeValue> vals = new HashMap<>(); 
      vals.put(":val1", new AttributeValue().withS("somevalue")); 

DynamoDBQueryExpression<modelclass> queryExp = new DynamoDBQueryExpression<modelclass>() 
        .withKeyConditionExpression("category = :val1").withIndexName("indexname") 
        .withExpressionAttributeValues(vals); 

dynamoDBMapper.query(modelclass.class, queryExp); 

DynamodbQueryExpression class