【问题标题】:Error in getting data from list type using datastax使用 datastax 从列表类型获取数据时出错
【发布时间】:2015-09-29 04:02:52
【问题描述】:

我使用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';

【问题讨论】:

    标签: java list cassandra datastax cql3


    【解决方案1】:

    更新:2.1.7 今天掉线了

    看起来这是 supported 驱动程序版本 2.1.7

    尚未正式发布/documented

    但您可以build yourself 或推迟到正式发布。

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

    您希望在查询生成器中使用新的ContainsClause

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

    【讨论】:

    • 感谢您的帮助。你能说我什么时候能得到那个 2.1.7 版本吗?
    • 没有硬性日期,但您可以关注邮件列表。如果您只是在开发中,请从源代码构建它。如果我是一个赌徒,我会说这只是几周或更短的时间。
    • 感谢您的帮助:)
    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 2020-12-29
    • 2022-01-13
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多