我有下面的代码: -java.lang.IllegalArgumentException异常在Dynamodb
Map<String, AttributeValue> eav = new HashMap<String, AttributeValue>();
eav.put(":val1", new AttributeValue().withS("12"));
ScrapCategoryDO myObject = new ScrapCategoryDO();
myObject.setCategoryName("Iron");
DynamoDBQueryExpression<ScrapCategoryDO> queryExpression = new DynamoDBQueryExpression<ScrapCategoryDO>()
//.withHashKeyValues(myObject)
.withFilterExpression("UnitPrice < :val1")
.withExpressionAttributeValues(eav);
List<ScrapCategoryDO> latestReplies = mapper.query(ScrapCategoryDO.class, queryExpression);
Log.d(TAG, "Number of categories = "+latestReplies.size());
for (ScrapCategoryDO reply : latestReplies) {
Log.d(TAG,"category name = "+reply.getCategoryName()+", unit price = "+ reply.getUnitPrice());
}
而且我正在与作为评论.withHashKeyValues(myObject的),下面的错误。我想知道如何查询整个表格而没有任何过滤条件/条件或其他?我试过了: -
DynamoDBQueryExpression<ScrapCategoryDO> queryExpression = new DynamoDBQueryExpression<ScrapCategoryDO>();
但是我还是得到了同样的错误。
W/System.err的:java.lang.IllegalArgumentException异常:非法查询表达式:在com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper:否散列关键条件在查询
W/System.err的发现。 processKeyConditions(DynamoDBMapper.java:2424)
W/System.err的:在com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper.createQueryRequestFromExpression(DynamoDBMapper.java:2386)
W/System.err的:在com.amazonaws。 mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper.query(DynamoDBMapper.java:2169)
W/System.err:at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper.query(Dyna moDBMapper.java:2130)
W/System.err:at com.example.rohitsingla.scrapman.MyActivity.FindAllScrapCategories(MyActivity.java:207)
W/System.err:at com.example.rohitsingla.scrapman。 MyActivity.access $ 000(MyActivity.java:26)
W/System.err的:在com.example.rohitsingla.scrapman.MyActivity $ 3.run(MyActivity.java:164)
感谢您的回答。它正在工作。但我想将我的“CategoryName”字段设置为关键字。我无法通过控制台更新我的表格。需要帮助。 –
如果您已将CategoryName定义为键,则在插入后无法更新。如果您能接受答案并且开放新的问题,如果有一个新的问题为每个人的利益和简洁,将不胜感激。 – notionquest