Vishwanath M
Vishwanath M

Reputation: 21

Connect multiple cassandra DB in spring boot application

Am trying to connect to multiple cassandra DB in springboot application,But when i ran cassandra query from repository class to get data from CassandraConfig2 am getting below error unconfigured table even though table in present in DB

Am trying to connect to multiple cassandra DB in springboot application, below is my cassandra config code

Config 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();
    }
}

Config 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();
    }
}

But when i ran cassandra query from repository class to get data from CassandraConfig2 am getting below error unconfigured table even though table in present in DB

need help here

Upvotes: 0

Views: 24

Answers (1)

Jane He
Jane He

Reputation: 116

I'm not an expert in spring boot but I suspect it's because you defined two beans in the same name and they conflict/override.

See this on how to have two configs in one application: Spring Boot 2 Cassandra multiple keyspaces or clusters

Upvotes: 1

Related Questions