1

spring-data-cassandra の CassandraOperations を使用して、cassandra テーブル内のコレクションを更新するサンプル例を調べています。うまくまとめられないのでシェアお願いします。また、ウェブ上では利用できません。

ありがとう

アップデート

spring-data-cassandra のコードを調べました。現在、更新操作を介してコレクションを置き換えるオプションのみが提供されています。それを拡張し、コレクションのアップグレード用の API を提供する予定です

4

1 に答える 1

0

CQL3 を使用した自己完結型の例を次に示します。Java cassandra ドライバーを使用してこれを spring に移植することは、複雑ではありません。

cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1 };
cqlsh> CREATE COLUMNFAMILY test.example (name text PRIMARY KEY, emails list<text>);
cqlsh> UPDATE test.example SET emails = ['fake@mail.com'] where name='lyuben';
cqlsh> SELECT * FROM test.example;

 name   | emails
--------+-------------------
 lyuben | ['fake@mail.com']

(1 rows)
cqlsh> UPDATE test.example SET emails = ['not@real.net'] + emails where name='lyuben';
cqlsh> SELECT * FROM test.example;                                              
 name   | emails
--------+-----------------------------------
 lyuben | ['not@real.net', 'fake@mail.com']

(1 rows)
cqlsh> UPDATE test.example SET emails = emails + ['maybe@legit.cc'] where name='lyuben';
cqlsh> SELECT * FROM test.example;                                              
 name   | emails
--------+-----------------------------------------------------
 lyuben | ['not@real.net', 'fake@mail.com', 'maybe@legit.cc']

(1 rows)

DOCS hereおよび here は、他のコレクションに関するものです。

注意すべき唯一のことは、新しいコレクション要素をステートメントの先頭に追加するか最後に追加するかによって違いが生じることです。

// post-append
['not@real.net'] + emails
['not@real.net', 'fake@mail.com']
// pre-append
emails = emails + ['maybe@legit.cc']
['not@real.net', 'fake@mail.com', 'maybe@legit.cc']
于 2015-02-06T19:58:38.063 に答える