我正在从我的Elastic beanstalk实例执行此代码。在Dynamodb中,我有一个带有哈希和范围键的表。我需要找到与我的哈希键匹配的所有行。我不想指定范围。该表上的类似查询在AWS Console上运行良好。我遵循了这个help

DynamoDB db = new DynamoDB(new AmazonDynamoDBClient(new ProfileCredentialsProvider()));
KeyAttribute key = new KeyAttribute("ID", new AttributeValue().withS("123"));
QuerySpec querySpec = new QuerySpec().withHashKey(key);
Table table = db.getTable("USER_TABLE");
ItemCollection<QueryOutcome> items = null;
try
{
            items = table.query(querySpec);
}
catch (Exception e)
{
            log.severe(String.format("table.query exception " + e.getMessage()));
}


table.query调用引发异常:
“值类型:类com.amazonaws.services.dynamodbv2.model.AttributeValue”

我看不到任何例外的原因,并且被卡住了。我在AWS论坛上发布了相同的问题,但仍未找到答案-非常感谢您的帮助。

最佳答案

问题在于此行:

KeyAttribute key = new KeyAttribute("ID", new AttributeValue().withS("123"));

KeyAttribute不需要AttributeValue,而是需要一个Object来表示值本身,因此在您的情况下,您应该这样创建KeyAttribute:

KeyAttribute key = new KeyAttribute("ID", "123");

08-05 05:40