Я загрузил версию 1.4.5 SDK Java SDK, и у меня возникла проблема с переносом запроса в таблицу DynamoDB. Это простой запрос хэша + диапазона.Исключение DynamoDBMapper v2
V1 работает нормально:
Condition c = new Condition().withComparisonOperator(ComparisonOperator.LT)
.withAttributeValueList(new AttributeValue(new Date().toString()));
DynamoDBQueryExpression q = new DynamoDBQueryExpression(new AttributeValue("john")).withRangeKeyCondition(c);
V2 АФИ, кажется, работает немного по-другому. изменения подписи метода требуется код, который будет переписан как:
Condition c = new Condition().withComparisonOperator(ComparisonOperator.LT)
.withAttributeValueList(new AttributeValue(new Date().toString()));
DynamoDBQueryExpression q = new DynamoDBQueryExpression()
.withIndexName("user")
.withHashKeyValues("john")
.withRangeKeyCondition("timestamp", c);
АМС SDK генерирует исключение:
The range key(timestamp) in the query is the primary key of the table, not the range key of index(user)
ли какой-либо один есть пример кода, показывающий, как выполнить запрос с новым v2 api для DynamoDB?
Каковы имена атрибутов хэша и диапазона? –
Chen, имя таблицы - это пользователи с хешем и ключом диапазона. У пользователя есть «пользователь», а диапазон - «метка времени». Примечание. Поскольку я разместил это в StackOverflow, мне удалось получить эту работу с низкоуровневыми API Java AWS. Я до сих пор не смог понять это, используя API более высокого уровня. –