2013-08-22 13 views

回答

-2

Here是执行条件放置的帮助链接。

Help链接使用条件放置只有放置一个属性,如果它不存在。

编辑:

您不能检查项目的存在,但不运行亚马逊的SimpleDB查询。你可以查询一个项目,如果amazon simpledb在请求中没有返回该项目,意味着该项目不存在。 查看示例代码 -

try { 
      BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials("<accessKey>", "<secretkey>"); 
      AmazonSimpleDBClient amazonSimpleDBClient = new AmazonSimpleDBClient(basicAWSCredentials); 
      amazonSimpleDBClient.setEndpoint("sdb.amazonaws.com"); 
      SelectRequest selectRequest = new SelectRequest("select * from `<domainName>` where itemName()='<itemName>'"); 
      SelectResult selectResult = amazonSimpleDBClient.select(selectRequest); 
      List<Item> itemList = selectResult.getItems(); 
      if (itemList.size() == 0) { 
       System.out.println("Specified item does not exist."); 
       List<ReplaceableAttribute> list = new ArrayList<ReplaceableAttribute>(); 
       ReplaceableAttribute replaceableAttribute = new ReplaceableAttribute("<attribute>", "<value>", Boolean.TRUE); 
       list.add(replaceableAttribute); 
       PutAttributesRequest attributesRequest = new PutAttributesRequest("<domainName>", "<itemName>", list); 
       amazonSimpleDBClient.putAttributes(attributesRequest); 
      } else { 
       System.out.println("Specified item exist. Do Nothing."); 
      } 
     } catch (Exception ex) { 
      System.out.println(ex.toString()); 
     } 
+0

ConditionalPut仅基于属性是否已存在指定值而工作。 –

+0

我已添加详细信息。请检查它是否适用于您的情况。 –

+0

如果在完成select语句后该项目被另一个进程删除,该怎么办? –

相关问题