我有多个PreparedStatement,这些初始化是在bean初始化期间使用单个键空间的当前设置一次创建的,但是现在我尝试使用多个键空间,而表模式仍与以下相同:
//session1 is from connecting to keyspace1
//while session2 to keyspace2
PreparedStatements ps = session1.prepare(sameStmt);
PreparesStatement ps1 = session2.prepare(sameStmt);
我要弄清楚的是,如果考虑到两个查询字符串相同,那么除了两个不同的对象之外,还有两个不同的键空间之间是否存在差异?我要实现的目标是,如果可能的话,无论键空间如何,都只能创建一次PreparedStatement。有什么建议吗?
答案 0 :(得分:3)
这不是卡桑德拉设计所允许的。即使两个键空间中的表之间的表架构相同,也无法确保这一点。为了安全起见,Cassandra生成不同的预备语句ID,因此将它们视为不同的预备语句。