2015-01-13 23 views
1

是什麼以下發電機數據庫查詢語法之間的區別:我們以前用的迪納摩DB Java語法

QueryRequest queryRequest = new QueryRequest().withTableName(TABLE).withKeyConditions(keyConditions)....; 


和最新的文檔中,我看到:

table.query("Id", replyId, 
      null, ///RangeKeyCondition - not used in this example 
      "PostedBy = :val", //FilterExpression 

哪一個應我們用? 它是一個新的語法?區別在哪裏?
謝謝

回答

0

不同的味道,相同的DynamoDB API。 The new Document API was introduced in Oct 2014

..新的Document API允許直接使用普通的舊Java數據類型,並且具有較少的樣板。事實上,Dynamo Document API 可用於完全包含您可以使用低級客戶端 (即AmazonDynamoDBClient)執行的操作,但使用更簡潔的編程模型 以及更少的代碼。

我個人仍然使用AmazonDynamoDBClient(你的第一個代碼示例)

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); 

修改您的查詢,將能夠搜索到的數據。