我在Spring数据卡桑德拉方面遇到了问题。即使将密钥空间指定到 CassandraConfig 中,它也会给我抛出这个错误。
未指定任何密钥空间。使用keyspace,或在com . datas tax . driver . core . responses$error . as exception(responses . Java:147)~[Cassandra-driver-core-3 . 4 . 0 . jar:na]中显式指定keyspace.tablename
CQL[SELECT*FROM测试WHERE标记='asdasdasd';];未指定键空间。使用keyspace,或显式指定keyspace.tablename;
CassandraConfig(卡桑德拉配置):
@Configuration
@EnableCassandraRepositories(basePackages = "com.test.model")
public class CassandraConfig extends AbstractCassandraConfiguration {
@Override
protected String getKeyspaceName() {
return "testKeySpace";
}
@Bean
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean cluster =
new CassandraClusterFactoryBean();
cluster.setContactPoints("127.0.0.1");
cluster.setPort(9142);
return cluster;
}
@Bean
public CassandraMappingContext cassandraMapping()
throws ClassNotFoundException {
return new BasicCassandraMappingContext();
}
}
你的问题看起来很像这样。
使用getKeyspaceName()
,您可以告诉cassandra要使用哪个键空间,但也需要创建这个键空间:
@Override
protected List<CreateKeyspaceSpecification> getKeyspaceCreations() {
return Arrays.asList(
CreateKeyspaceSpecification.createKeyspace()
.name("your_keyspace_name")
.ifNotExists()
);
}