在 Spring Boot 应用程序中连接多个 cassandra DB

问题描述 投票:0回答:1

我试图在 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 获取数据时,即使数据库中存在表,也会出现以下错误:未配置的表

这里需要帮助

cassandra-3.0 spring-data-cassandra
1个回答
0
投票

我不是 Spring Boot 方面的专家,但我怀疑这是因为您以相同的名称定义了两个 bean,并且它们冲突/覆盖。

© www.soinside.com 2019 - 2024. All rights reserved.