Java Springboot Cassandra-com.datasax.oss.driver.api.core.servererrors.SyntaxError:绑定变量不能用于键空间名称

Java Springboot Cassandra-com.datasax.oss.driver.api.core.servererrors.SyntaxError:绑定变量不能用于键空间名称,java,spring-boot,cassandra,Java,Spring Boot,Cassandra,关于如何在SpringBoot@Repository中使用keyspace name变量的小问题 我目前有一个数据库,在两个不同的键空间中有两个不同的表。但数据结构相同 有时,我需要从第一个keysapce检索,有时需要从第二个keysapce检索。 因此,我写了以下内容: @Repository public interface MyRepository extends ReactiveCassandraRepository<Data, String> { @Qu

关于如何在SpringBoot@Repository中使用keyspace name变量的小问题

我目前有一个数据库,在两个不同的键空间中有两个不同的表。但数据结构相同

有时,我需要从第一个keysapce检索,有时需要从第二个keysapce检索。 因此,我写了以下内容:

@Repository
public interface MyRepository extends ReactiveCassandraRepository<Data, String> {
    
    @Query("select * from ?0.?1 where key = ?2")
    Mono<Data> findByIdCustom(String keyspace, String table, String key);

}
有没有一种方法可以解决这个问题,而不必在查询中硬编码键空间


谢谢你

看看这个——是的,这是一篇很好的博客文章。但如果可能的话,我想解决这个“SyntaxError:Bind变量不能用于键空间名称”的问题。
org.springframework.data.cassandra.CassandraQuerySyntaxException: Query; CQL [com.datastax.oss.driver.internal.core.cql.DefaultSimpleStatement@eeba944d]; Bind variables cannot be used for keyspace names; nested exception is com.datastax.oss.driver.api.core.servererrors.SyntaxError: Bind variables cannot be used for keyspace names
    at org.springframework.data.cassandra.core.cql.CassandraExceptionTranslator.translate(CassandraExceptionTranslator.java:129) ~[spring-data-cassandra-3.1.1.jar!/:3.1.1]
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:

Caused by: com.datastax.oss.driver.api.core.servererrors.SyntaxError: Bind variables cannot be used for keyspace names