Spring Boot Astra Cassandra - 在 application.yml 中指定了键空间,但仍然抛出错误 "No keyspace has been specified"

Spring Boot Astra Cassandra - keyspace specified in application.yml but still throws error "No keyspace has been specified"

我正在尝试构建一个非常简单的 api 通过 spring 引导连接到 astra Cassandra 节点数据库。但是,即使我在 application.yml 中指定了键空间,它仍然会抛出异常:

com.datastax.oss.driver.api.core.servererrors.InvalidQueryException: No keyspace has been specified. USE a keyspace, or explicitly specify keyspace.tablename

这是我的 application.yml:

astra.api:
  application-token: <my-token>
  database-id: <my-db-id>
  database-region: <my-db-region>

astra.cql:
  enabled: true
  downloadScb.path: secure-connect.zip

spring.data.cassandra:
  keyspace-name: shopping_list
  schema-action: CREATE_IF_NOT_EXISTS

我也试过用keyspace代替keyspace-name,放在astra.api甚至astra.cql下面。不过 None 这些作品。

我完全按照 this tutorial 进行操作,但我无法弄清楚问题所在。

我检查了令牌、数据库 ID 和数据库区域都是正确的,安全连接包也在那里。应用程序确实可以从 application.yml 中获取其他值,例如 scb 路径和模式操作,但显然不是键空间名称。

非常感谢任何输入!

astra-spring-boot-starter(所有键 astra.*)将初始化 CqlSession 和 Astra 所需的任何连接(Cassandra、Rest Apis、gRPC、pulsar...)。

Spring Data Casandra 检测连接并使用它。您可以使用 driver-config.

下面的 Cassandra 驱动程序的任何配置密钥

application.yaml应该是这样的。

astra:
  api:
    application-token: <your_token>
    database-id: <your_db_id>
    database-region: <your_db_region>
  cql:
    enabled: true
    download-scb: 
    enabled: true
    driver-config:
      basic:
        session-keyspace: <your_keyspace>

启动器的文档 https://github.com/datastax/astra-sdk-java/wiki/Spring-Boot-Starter-Quickstart#4-configuration

示例工作项目(mvc、rest、cassandra、Oauth2、thymeleaf) https://github.com/datastaxdevs/workshop-betterreads