CassandraBatchTemplate

CassandraBatchTemplate

我想使用CassandraBatchTemplate的withTimestamp在CQL中插入客户端时间戳,例如USING TIMESTAMP子句。这是我的代码:

  @Bean
  public DseSession dseSession(DseCluster dseCluster) {
    return dseCluster.connect(keyspace);
  }

  @Bean
  public CassandraOperations cassandraTemplate(DseSession session) {
    return new CassandraTemplate(session);
  }

  @Bean
  public CassandraBatchOperations cassdraBatchTemplate(CassandraOperations cassandraTemplate) {
    return new CassandraBatchTemplate(cassandraTemplate);
  }


编译时,即使我在spring-data-cassandra源代码中可以看到它,也抱怨找不到CassandraBatchTemplate。我注意到的一件事是,CassandraBatchTemplate是接口CassandraBatchOperations的默认实现,因此没有'public'应用于CassandraBatchTemplate类:

class CassandraBatchTemplate implements CassandraBatchOperations {...}


如果该类不是公共类,则无法通过“ new”创建它的实例。如何解决?我正在使用spring-data-cassandra 2.1.10.RELEASE和dse-java-driver-core 1.8.2

最佳答案

CassandraBatchTemplate不公开,因为它的生命周期非常有限。它不打算用作@Bean,因为它仅对单个执行有效。

而是通过CassandraBatchOperations获取CassandraOperations.batchOps()

10-08 09:01