在 Spring Data Cassandra 4.0.5 中连接到多个键空间时出错

问题描述 投票:0回答:1
Error creating bean with name 'cassandraTemplate' defined in class path resource \
  [learn/multiple/database/configuration/SerenoKeyspaceConfig.class]: \
  No matching factory method found on class [learn.multiple.database.configuration.SerenoKeyspaceConfig]: \
  factory bean 'serenoKeyspaceConfig'; factory method 'cassandraTemplate()'. \
  Check that a method with the specified name exists and that it is non-static.

此错误随 spring data 版本 4.0.5 一起出现,但相同的代码在 3.3.4 版本中完美运行

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

从 Spring Data 应用程序连接到 Cassandra 时,您在配置中指定一个键空间。

要连接到其他键空间,您需要通过在 CQL 查询中指定键空间名称和表名称来完全限定要连接的表。

例如获取

users
表中
appks
键空间的所有用户:

    @Override
    public List<User> findAll() {
        String cql = "SELECT * FROM appks.users";
        return cassandraTemplate.select(cql, User.class);
    }

在另一个名为

eshop
的键空间中获取特定客户的详细信息:

    @Override
    public Customer findById(String id) {
        String cql = "SELECT * FROM eshop.customers WHERE id=?";
        return cassandraTemplate.selectOne(cql, Customer.class, id);
    }
© www.soinside.com 2019 - 2024. All rights reserved.