我试图在 springboot 应用程序中连接到多个 cassandra 数据库,但是当我从存储库类运行 cassandra 查询以从 CassandraConfig2 获取数据时,即使数据库中存在表,也会出现以下错误:未配置的表
我尝试在 springboot 应用程序中连接到多个 cassandra 数据库,下面是我的 cassandra 配置代码
配置1
@Configuration
@EnableCassandraRepositories(basePackages = "com.example.microservice.cloud.dao.repo1")
public class CassandraConfig1 extends AbstractCassandraConfiguration {
@Override
protected String getKeyspaceName() {
return keySpace;
}
@Override
protected String getContactPoints() {
return contactPoints;
}
@Override
protected int getPort() {
return PORT;
}
@Bean()
@Primary
public CqlSessionFactoryBean cassandraMapSession() {
final CqlSessionFactoryBean cqlSessionFactoryBean = super.cassandraSession();
cqlSessionFactoryBean.setContactPoints(contactPoints);
cqlSessionFactoryBean.setKeyspaceName(keySpace);
cqlSessionFactoryBean.setPort(PORT);
cqlSessionFactoryBean.setUsername(cassandraUsername);
cqlSessionFactoryBean.setPassword(cassandraPassword);
return cqlSessionFactoryBean;
}
@Override
public CqlSessionFactoryBean cassandraSession() {
return cassandraMapSession();
}
}
配置2
@Configuration
@EnableCassandraRepositories(basePackages = "com.example.microservice.cloud.dao.repo2")
public class CassandraConfig2 extends AbstractCassandraConfiguration {
@Override
protected String getKeyspaceName() {
return keySpace;
}
@Override
protected String getContactPoints() {
return contactPoints;
}
@Override
protected int getPort() {
return PORT;
}
@Bean()
public CqlSessionFactoryBean cassandraMapSession() {
final CqlSessionFactoryBean cqlSessionFactoryBean = super.cassandraSession();
cqlSessionFactoryBean.setContactPoints(contactPoints);
cqlSessionFactoryBean.setKeyspaceName(keySpace);
cqlSessionFactoryBean.setPort(PORT);
cqlSessionFactoryBean.setUsername(cassandraUsername);
cqlSessionFactoryBean.setPassword(cassandraPassword);
return cqlSessionFactoryBean;
}
@Override
public CqlSessionFactoryBean cassandraSession() {
return cassandraMapSession();
}
}
但是当我从存储库类运行 cassandra 查询以从 CassandraConfig2 获取数据时,即使数据库中存在表,也会出现以下错误:未配置的表
这里需要帮助
我不是 Spring Boot 方面的专家,但我怀疑这是因为您以相同的名称定义了两个 bean,并且它们冲突/覆盖。