gpt4 book ai didi

spring-boot - 由 : com. datastax.oss.driver.api.core.InvalidKeyspaceException: Invalid keyspace mykeyspace in Spring Boot Cassandra 引起

转载 作者:行者123 更新时间:2023-12-04 07:57:29 30 4
gpt4 key购买 nike

我设计了一个使用 Spring boot 和 Cassandra 的项目,它在 Docker Container 上运行。
在我实现了 Cassandra 的配置之后,我运行了这个项目,它抛出了如下所示的错误。

Caused by: com.datastax.oss.driver.api.core.InvalidKeyspaceException: Invalid keyspace mykeyspace
我该如何解决这个问题?
这是我的 application.properties 文件。
spring.cassandra.contactpoints=127.0.0.1
spring.cassandra.port=9042
spring.data.cassandra.keyspace-name=mykeyspace
spring.cassandra.basepackages=com.springboot.cassandra
这是Cassandra的配置文件
@Configuration
@EnableCassandraRepositories
public class CassandraConfiguration extends AbstractCassandraConfiguration {

@Value("${spring.cassandra.contactpoints}")
private String contactPoint;

@Value("${spring.cassandra.port}")
private int port;

@Value("${spring.data.cassandra.keyspace-name}")
private String keyspaceName;

@Value("${spring.cassandra.basepackages}")
private String basePackages;

@Override
protected String getKeyspaceName() {
return keyspaceName;
}

@Override
protected int getPort() {
return port;
}

@Override
protected String getContactPoints() {
return contactPoint;
}

@Override
public SchemaAction getSchemaAction() {
return SchemaAction.CREATE_IF_NOT_EXISTS;
}

@Override
public String[] getEntityBasePackages() {
return new String[] {basePackages};
}

}

最佳答案

默认情况下,Spring Data 将为 不是 为您创建或更改架构。对于大多数用例来说,这是一件好事,因为通常您不希望基于 java 类创建架构。一般来说,改变会更糟,特别是对于 Cassandra 来说也很困难。
如果你想让 spring 创建它,你需要:

spring.data.cassandra.schema-action=CREATE_IF_NOT_EXISTS
我仍然建议不要在生产中使用它。
然而,当谈到键空间时,根据我的知识和 documentation 的措辞 即使 ,spring 也不会创建键空间你使用上面的代码。这对 Cassandra 来说很有意义,因为 key 空间需要诸如复制策略和复制因子之类的信息,后者会因添加或删除新数据中心等信息而发生变化。这些事情是不应该留给 Spring 的管理任务。

关于spring-boot - 由 : com. datastax.oss.driver.api.core.InvalidKeyspaceException: Invalid keyspace mykeyspace in Spring Boot Cassandra 引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66626012/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com