小编frk*_*rkn的帖子

如何使用Spring Boot初始化Cassandra键空间和表

我在我的Spring Boot应用程序中将Cassandra用作数据源,并希望在应用程序启动之前初始化数据库。

到目前为止,我已经定义了扩展“ AbstractCassandraConfiguration”类的“ CassandraConfiguration”类,如下面的示例所示,并且我有一个扩展“ CassandraRepository”的存储库。当我自己创建键空间和表时,该应用程序运行良好。

但是,我想在应用程序启动时自动创建键空间和表。为此,我在资源文件夹下提供了一个schema.cql文件,但无法使该脚本正常工作。

有谁知道如何做才能自动创建键空间和表?

谢谢。

编辑:我正在使用Cassandra 2.0.9,spring-boot 1.3.2.RELEASE和datastax cassandra驱动程序2.1.6版本。

CassandraConfiguration.java

@Configuration
@PropertySource(value = { "classpath:cassandra.properties" })
@EnableCassandraRepositories(basePackages = { "bla.bla.bla.repository" })
public class CassandraConfiguration extends AbstractCassandraConfiguration {

    @Autowired
    private Environment environment;


    @Bean
    public CassandraClusterFactoryBean cluster() {
        CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
        cluster.setContactPoints( environment.getProperty( "cassandra.contactpoints" ) );
        cluster.setPort( Integer.parseInt( environment.getProperty( "cassandra.port" ) ) );
        return cluster;
    }


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


    @Bean
    public CassandraConverter converter() throws ClassNotFoundException {
        return new …
Run Code Online (Sandbox Code Playgroud)

cassandra spring-boot spring-data-cassandra

6
推荐指数
2
解决办法
6219
查看次数