Spring数据cassandra - 没有指定键空间

时间:2018-01-22 15:56:36

标签: spring spring-boot spring-data-cassandra

我遇到了弹簧数据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();
    }
}

1 个答案:

答案 0 :(得分:-1)

您的问题看起来很像this

使用getKeyspaceName(),您可以告诉cassandra使用哪个键空间,但是您还需要创建此键空间:

@Override
protected List<CreateKeyspaceSpecification> getKeyspaceCreations() {
    return Arrays.asList(
            CreateKeyspaceSpecification.createKeyspace()
                    .name("your_keyspace_name")
                    .ifNotExists()
    );
}