You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Data Cassandra问题:已配置Keyspace仍报未指定错误求助

解决Spring Data Cassandra指定Keyspace仍报错"No keyspace has been specified"的问题

我看了你遇到的问题,明明在CassandraConfig里指定了Keyspace,但执行查询时还是提示没有指定Keyspace。咱们来一步步拆解原因和解决办法:

首先看你贴的错误信息:

com.datastax.driver.core.exceptions.InvalidQueryException: No keyspace has been specified. USE a keyspace, or explicitly specify keyspace.tablename
at com.datastax.driver.core.Responses$Error.asException(Responses.java:147) ~[cassandra-driver-core-3.4.0.jar:na]
CQL [SELECT * FROM test WHERE token='asdasdasdasd';]; No keyspace has been specified. USE a keyspace, or explicitly specify keyspace.tablename;

再看你的配置代码,问题出在你自定义的cluster()Bean上。当你继承AbstractCassandraConfiguration时,这个父类已经帮你封装了CassandraClusterFactoryBean的创建逻辑,并且会自动把你重写的getKeyspaceName()配置关联到Cluster实例中。但你自己重新定义了cluster()Bean,直接覆盖了父类的默认实现,导致Keyspace的配置没有被正确应用,所以执行CQL时系统找不到对应的Keyspace。

修复方案

移除自定义的cluster()Bean,通过重写父类的方法来配置ContactPoints和Port:

修改后的CassandraConfig代码:

@Configuration
@EnableCassandraRepositories(basePackages = "com.test.model")
public class CassandraConfig extends AbstractCassandraConfiguration {
    @Override
    protected String getKeyspaceName() {
        return "testKeySpace";
    }

    // 重写父类方法指定Cassandra连接地址
    @Override
    protected String getContactPoints() {
        return "127.0.0.1";
    }

    // 重写父类方法指定Cassandra端口
    @Override
    protected int getPort() {
        return 9142;
    }

    @Bean
    public CassandraMappingContext cassandraMapping() throws ClassNotFoundException {
        return new BasicCassandraMappingContext();
    }
}

另外,还要确保你的实体类正确关联了Keyspace和表名,比如:

import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;

@Table(keyspace = "testKeySpace", name = "test")
public class TestEntity {
    @PrimaryKey
    private String token;
    
    // 其他字段、构造方法、getter/setter
}

这样修改之后,Spring Data Cassandra会正确加载你指定的Keyspace配置,执行查询时就不会再出现“No keyspace has been specified”的错误了。

内容的提问来源于stack exchange,提问作者M. Alexandru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:53:47