以下dynamo db查询语法有什么区别: 我们曾经使用
QueryRequest queryRequest = new QueryRequest().withTableName(TABLE).withKeyConditions(keyConditions)....;
在最新文档中我看到:
table.query("Id", replyId,
null, ///RangeKeyCondition - not used in this example
"PostedBy = :val", //FilterExpression
我们应该使用哪一个?
这是一种新语法吗?区别在哪里?
答案 0 :(得分:0)
不同的风味,相同的DynamoDB API。 The new Document API was introduced in Oct 2014
..新的Document API允许直接使用普通的旧Java数据 类型和较少的样板。实际上,Dynamo Document API可以 用于完全包含你可以用低级客户端做什么 (即AmazonDynamoDBClient)但编程模型更清晰 而且代码更少。
我个人仍然使用AmazonDynamoDBClient(您的第一个代码示例)
答案 1 :(得分:0)
@Bean
public AmazonDynamoDB amazonDynamoDB() {
String accesskey = "";
String secretkey = "";
//
// creating dynamo client
BasicAWSCredentials credentials = new BasicAWSCredentials(accesskey, secretkey);
AmazonDynamoDB dynamo = new AmazonDynamoDBClient(credentials);
dynamo.setRegion(Region.getRegion(Regions.US_WEST_2));
return dynamo;
}
@Bean
public DynamoDBMapper dynamoDBMapper() {
return new DynamoDBMapper(amazonDynamoDB());
}
@Bean
public DynamoDBTemplate dynamoDBTemplate() {
return new DynamoDBTemplate(amazonDynamoDB());
}
Use DynamoDbMapper for scanning the data :
DynamoDBQueryExpression<T> query = new DynamoDBQueryExpression<>();
query.addExpressionAttributeNamesEntry("xyz", "abc");
List<T> results = dynamoDBMapper.query(T.class, query);
修改您的查询,并能够搜索数据。