java - Springboot Cassandra - com.datastax.oss.driver.api.core.servererrors.SyntaxError:绑定变量不能用于键空间名称
问题描述
关于如何在 SpringBoot @Repository 中拥有键空间名称变量的快速问题。
我目前有一个数据库,它在两个不同的键空间中有两个不同的表。但是具有完全相同的数据结构。
有时,我需要从第一个键区检索,有时是第二个键区。因此,我写了以下内容:
@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);
}
然而,这会产生
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
有没有办法解决这个问题,而不必在查询中对键空间进行硬编码?
谢谢
解决方案
推荐阅读
- ios - 从一个视图控制器到另一个视图控制器显示表格视图单元格的问题
- regex - 数字或三个字母的正则表达式模式
- python - 为什么不能使用 python 模块?
- c# - 如果我从泛型函数中序列化一个对象,其中该对象的属性不在其接口上,那么序列化对象上会有什么?
- unity3d - Unity2D让我在创建材质时编辑三件事
- javascript - 在 Google Maps API Javascript 中隐藏标记
- c# - c#:在字典上迭代时避免分支
- java - android.os.NetworkOnMainThreadException - 如何解决?
- youtube - Youtube Data API - 搜索应该匹配所有关键字
- html - 在 Semantic UI React 中将项对齐到另一个下方