在spring数据文档中,它说:
CassandraTemplate是寻找访问功能的地方,例如递增计数器或ad-hoc CRUD操作。
我正在尝试使用spring-data-cassandra中的CassandraTemplate更新计数器,但有关此主题的文档非常稀疏。有一个很好的例子吗?
答案 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);}
当然,您也可以参数化正在更新的值。