Spring Data Cassandra Counter更新

时间:2015-04-12 08:27:37

标签: spring cassandra spring-data spring-data-cassandra

在spring数据文档中,它说:

CassandraTemplate是寻找访问功能的地方,例如递增计数器或ad-hoc CRUD操作。

我正在尝试使用spring-data-cassandra中的CassandraTemplate更新计数器,但有关此主题的文档非常稀疏。有一个很好的例子吗?

2 个答案:

答案 0 :(得分:3)

我既没有找到任何好的例子,但是从CassandraTemplate / CqlTempleate的源代码,代码看起来应该是这样的:

Update updateOp = QueryBuilder.update(cassandraOperations.getTableName(MyMapped.class).toCql());
        updateOp.with(QueryBuilder.incr("my_count_column"))
                        .where(QueryBuilder.eq(...) ); // Primary key clause
cassandraOperations.execute(updateOp);

答案 1 :(得分:2)

您还可以使用自定义@Query来更新计数器值。

例如,假设您有一些存储库:

public interface SomeRepository extends CassandraRepository<SomeEntity> {

@Query("update some_table SET counter=counter+1 WHERE value1 = ?0 AND value2= ?1;")
Object updateCounterValue(String value1, String value2);}

当然,您也可以参数化正在更新的值。