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