2015-09-26 43 views
1

從2.1.7將Cassandra驅動程序的核心jar更新到版本2.2.0-rc1。我有這樣一個說法:Datastax QueryBuilder找不到'Contains'子句

Statement select = QueryBuilder.select().all().from(keyspace, tableName).where(QueryBuilder.contains("tags", list.get(0))); 

找不到QueryBuilder.contains。我們現在是否有包含子句的替代方法?如何使用包含新的更新的驅動程序?

回答

1

Java Driver 2.2+不再爲QueryBuilder提供靜態方法來創建查詢。相反,你now must construct a QueryBuilder實例提供羣集實例,即:

Statement select = new QueryBuilder(cluster).select().all().from(keyspace, tableName).where(QueryBuilder.contains("tags", list.get(0))); 

已經有討論的是提供羣集實例可能並不總是需要(這是確定關鍵路由和值序列化主要用),所以這可能改回到它在java-driver 2.1中存在的方式。

包含方法仍然是靜態的,因爲它是查詢條件的一部分,但不構成查詢的開始(即選擇,刪除等)。

+0

2.2.0-rc1仍然有靜態QueryBuilder。版本2.2.0-rc2 +需要實例。 –