2015-07-10 76 views
1

我使用Cassandra 2.1.7CQL3來處理它。使用datastax從列表類型獲取數據時出錯

我的表中有一列list<text>類型的列。我使用DataStax cassandra-driver-core-2.1.5來讀取和寫入我的數據從Cassandra。在構建我的查詢時,我看到爲我的列list<text>構建的查詢是錯誤的(我查了兩個查詢的Datastax DevCenter

我的代碼構建查詢。

Clause clause = null; 
for (Entry<String, Object> val : conditionMap.entrySet()) { 
    clause = QueryBuilder.eq("\"".concat(val.getKey()).concat("\""), val.getValue()); 
    where = where.and(clause); 
} 

在使用上述方法時生成的查詢。

SELECT * FROM "ashokkeyspace"."table150" WHERE "id"=150 AND "listdata" =['apple']; 

我實際需要什麼查詢。

SELECT * FROM "ashokkeyspace"."table150" WHERE "id"=150 AND "listdata" contains 'apple'; 

回答

2

UPDATE:2.1.7今天

下降看起來這是supported作爲驅動程序版本2.1.7

哪些尚未正式發佈/ documented

但是你可以build yourself或者等到它是GA。

我推薦在推送到Prod之前等待,因爲當前的2.1.7分支存在一些已知的性能問題。

您希望在查詢生成器中使用新的ContainsClause。請參閱driver mailing list

+0

感謝您的幫助。你能說我什麼時候能得到2.1.7版本? – ashokramcse

+0

沒有艱難的約會,但你可以按照郵件列表。如果你只是在開發中從源代碼構建它。如果我是一個投注人,我會說這是幾周或更短的時間。 – phact

+2

感謝您的幫助:) – ashokramcse