我想使用CassandraBatchTemplate的withTimestamp来插入客户端时间戳,就像在CQL中使用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);
}编译时,它抱怨说找不到CassandraBatchTemplate,尽管我可以在spring-data-cassandra源代码中看到它。我注意到的一件事是,CassandraBatchTemplate是接口CassandraBatchOperations的默认实现,因此没有对CassandraBatchTemplate类应用'public‘:
class CassandraBatchTemplate implements CassandraBatchOperations {...}如果类不是公共的,那么我不能通过'new‘创建它的实例。如何解决?我使用spring-data-cassandra 2.1.10.RELEASE和dse-java-driver-core 1.8.2
发布于 2020-02-17 16:17:55
CassandraBatchTemplate不是公开的,因为它的生命周期非常有限。它不打算用作@Bean,因为它只对一次执行有效。
取而代之的是通过CassandraOperations.batchOps()获取CassandraBatchOperations。
https://stackoverflow.com/questions/60220517
复制相似问题