Обновить столбец Composite Counter с помощью Astyanax

На примерах я вижу, как обновить столбец счетчика и вставить в составной столбец с помощью Astyanax. Но я не вижу, как сделать и то, и другое.

Вот что я пытаюсь сделать в CQL 3

UPDATE column_family SET count = count + 1 WHERE col1='foo' AND col2='bar' AND col3='yo';

С такой схемой

CREATE COLUMNFAMILY column_family (
   col1 varchar,
   col2 varchar,
   col3 varchar,
   count counter,
PRIMARY KEY (col1, col2, col3));

Вот суть, которую я должен обновить составной столбец

public void updateCount(String columnFamilyName , String rowKey , Counter rollup , int count) throws ConnectionException {


  try  {
  AnnotatedCompositeSerializer<Counter> entitySerializer = new AnnotatedCompositeSerializer<Counter>(Counter.class);
  MutationBatch mutation = keyspace.prepareMutationBatch();

   ColumnFamily<String, Counter> columnFamily
      = new ColumnFamily<String, Counter>(columnFamilyName, StringSerializer.get() , entitySerializer);
   mutation.withRow(columnFamily , rowKey).putColumn(rollup, count, null);

   mutation.execute();


  } catch (Throwable e){
    LOG.warn("update fail" , e);
  }

}

person jhnstn    schedule 29.11.2012    source источник


Ответы (1)


Определенно есть метод incrementCounterColumn. Мой код обычно выглядел примерно так:

batch.withRow( ... ).incrementCounterColumn( ... );
person pscuderi    schedule 15.10.2013