Запрос индексов БД Dynamo: GSI и LSI

Я использую мобильное приложение для запроса таблиц Dynamo DB. Я использовал следующий запрос для извлечения элемента из таблицы Dynamo DB Test:

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

У меня вопрос, как запросить элемент из глобального вторичного индекса? Я правильно определил аннотации и параметры в классе Java таблицы Test.

Есть ли другой метод для запроса глобальных вторичных индексов и локальных вторичных индексов.

1 ответ

Решение

load api не может быть использован для запроса GSI. Query 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

Другие вопросы по тегам