将Cassandra驱动程序核心jar更新为2.1.7版本2.2.0-rc1。我的声明如下:
Statement select = QueryBuilder.select().all().from(keyspace, tableName).where(QueryBuilder.contains("tags", list.get(0)));
找不到 QueryBuilder.contains 。我们现在有一些替代的contains子句吗?如何使用包含新的更新驱动程序?
答案 0 :(得分:1)
Java Driver 2.2+不再为QueryBuilder提供静态方法来创建查询。相反,你now must construct a QueryBuilder实例提供了一个Cluster实例,即:
Statement select = new QueryBuilder(cluster).select().all().from(keyspace, tableName).where(QueryBuilder.contains("tags", list.get(0)));
有人一直在讨论提供集群实例可能并不总是必需的(它主要用于确定密钥路由和值序列化),因此这可能会改变回java-driver 2.1中存在的方式。
contains方法仍然是静态的,因为它是查询条件的一部分,但不是用于构造查询的开头(即选择,删除等)。