我遇到了弹簧数据cassandra的问题。即使将键空间指定到CassandraConfig中,也会给我带来这个错误。
com.datastax.driver.core.exceptions.InvalidQueryException:无键空间 已经指定。使用键空间,或明确指定 keyspace.tablename at com.datastax.driver.core.Responses $ Error.asException(Responses.java:147) 〜[卡桑德拉驱动器芯-3.4.0.jar:NA]
CQL [SELECT * FROM test WHERE token =' asdasdasdasd';];没有 密钥空间已被指定。使用键空间,或明确指定 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();
}
}
答案 0 :(得分:-1)
您的问题看起来很像this。
使用getKeyspaceName()
,您可以告诉cassandra使用哪个键空间,但是您还需要创建此键空间:
@Override
protected List<CreateKeyspaceSpecification> getKeyspaceCreations() {
return Arrays.asList(
CreateKeyspaceSpecification.createKeyspace()
.name("your_keyspace_name")
.ifNotExists()
);
}