Search:

Search all manuals
Search this manual
Manual
Couchbaseクライアントライブラリ: Java 1.0
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
7 更新操作
Chapter Sections
Chapters

7.1. Append メソッド

append() メソッドはデータベース内の既存のkey/valueペアに対して情報を追加することができます。これを利用して既存の文字列あるいはその他のデータの後ろに情報を追加することができます。

append() メソッドはキーに対する既存のデータの末尾にシリアライズされたデータを追記します。Couchbaseにシリアライズしたオブジェクトを格納した後に append を利用しても、そのシリアライズされたオブジェクトの内容が拡張されることはありません。例えば、データベースに整数の配列を追加した後、append() を利用してさらに整数を追加しようとしても、キーの値としてはシリアライズされた配列とそれに続くシリアライズされた整数となります。追加された整数を保持する配列にはなりません。追記されたデータをデシリアライズした際にデータが破損している可能性があります。

API Callclient.append(casunique, key, value)
Asynchronousno
Description Append a value to an existing key
ReturnsObject ( Binary object )
Arguments 
long casunique Unique value used to verify a key/value combination
String key Document ID used to identify the value
Object value Value to be stored

append() は既存のkey/valueペアの末尾に情報を追記します。append() はCAS値を必要とします。CAS値の詳細については、「CAS get メソッド」を参照してください。

例えば、既存のキーに文字列を追加するには:

CASValue<Object> casv = client.gets("samplekey");
client.append(casv.getCas(),"samplekey", "appendedstring");

OperationFuture を使って追記操作が完了したか確認できます:

OperationFuture<Boolean> appendOp =
    client.append(casv.getCas(),"notsamplekey", "appendedstring");

try {
    if (appendOp.get().booleanValue()) {
        System.out.printf("Append succeeded\n");
    }
    else {
        System.out.printf("Append failed\n");
    }
}
catch (Exception e) {
...
}
API Callclient.append(casunique, key, value, transcoder)
Asynchronousno
Description Append a value to an existing key
ReturnsObject ( Binary object )
Arguments 
long casunique Unique value used to verify a key/value combination
String key Document ID used to identify the value
Object value Value to be stored
Transcoder<T> transcoder Transcoder class to be used to serialize value

append() メソッドの二つ目の形式ではカスタムトランスコーダを利用可能です。