使用datastax从列表类型获取数据时出错

时间:2015-07-10 11:58:03

标签: java list cassandra datastax cql3

我使用Cassandra 2.1.7CQL3进行处理。

我的表格中有一个list<text>类型的列。我使用DataStax cassandra-driver-core-2.1.5Cassandra读取和写入数据。在构建我的查询时,我看到为我的列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';

1 个答案:

答案 0 :(得分:2)

更新:2.1.7今天放弃了

从驱动程序版本supported开始,这似乎是2.1.7

尚未正式发布/ documented

但你可以build yourself或推迟到GA为止。

我建议在推送到Prod之前等待,因为当前的2.1.7分支存在一些已知的性能问题。

您希望查询构建器中有新的ContainsClause

有关发布日期等的更新,请参阅driver mailing list