Привет, я пытаюсь создать простое приложение для adnroid, работающее с Dynamodb, и следую этому руководству: Ссылка на учебник
Мне удалось подключиться к dbClient и получить доступ к таблице. Я могу успешно выполнить dbTable.putItem, а также другие методы, такие как dbTable.getTableDescription.
У меня проблемы с пониманием того, как выполнить метод dbTable.getItem, для которого в качестве входных данных требуется примитив. Я не совсем понимаю, как использовать Hashkey или первичный ключ.
Моя таблица выглядит так: Нажмите на изображение это хеш-ключи Первичный ключ
Когда я выполняю эту строку кода:
Document doc = dbTable.getItem(new Primitive("1"));
где 1 - значение первого значения в таблице.
Я получаю эту ошибку.
java.lang.IllegalStateException: hash key type does not match the one in table defination at com.amazonaws.mobileconnectors.dynamodbv2.document.Table.makeKey(Table.java:720) at com.amazonaws.mobileconnectors.dynamodbv2.document.Table.getItem(Table.java:298) at com.example.user.dynamodb.MainActivity$1.run(MainActivity.java:65)
@Karthikeyan Я редактировал OP, пожалуйста, посмотрите изображение. Равен ли первичный ключ Hashkey? Вы имеете в виду Хэшкей, изображение или что-то еще? Можно спросить, как определить хэш-ключ?
Можете ли вы попробовать new Primitive(1), где вы передаете 1 без строки?
передача 1 дает ту же ошибку
DynamoDB поддерживает два типа первичных ключей: хеш-ключ и хеш-ключ и ключ диапазона. Хеш-ключ состоит из одного атрибута, который однозначно идентифицирует элемент. Ключ хеширования и диапазона состоит из двух атрибутов, которые вместе однозначно идентифицируют элемент. Можете ли вы найти в своей таблице то, что вы установили в качестве первичного ключа? Ваш хэш-ключ просто seq?
Мы отслеживаем эту проблему на GitHub: github.com/aws-amplify/aws-sdk-android/issues/574




Можете ли вы проверить, какой hashKey вы настроили при создании таблицы в DynamoDB?