3

在弹簧数据文档中,它说:

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

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

4

2 回答 2

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);
于 2016-02-19T09:24:01.000 回答
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);}

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

于 2017-03-18T23:22:31.410 回答