1

属性を追加するアイテムがまだ存在しない場合にのみ、属性を追加したいと思います。

私が知る限り、UpdateCondition コンストラクトでは、アイテムの特定の属性が指定された値で存在するかどうかに基づいてのみ更新できます。

4

1 に答える 1

-2

これは、Conditional Putを実行するためのヘルプ リンクです。

条件付き put を使用して、属性が存在しない場合にのみ属性を配置するための ヘルプリンク。

編集:

Amazon 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());
        }
于 2013-08-23T04:50:03.927 に答える