【问题标题】:How do you add elements to a set with DataStax QueryBuilder?如何使用 DataStax QueryBuilder 将元素添加到集合中?
【发布时间】:2015-08-05 20:41:35
【问题描述】:

我有一个列类型为的表

text, bigint, set<text> 

我正在尝试更新单行并使用 QueryBuilder 将元素添加到集合中。

覆盖现有集合的代码如下所示(注意这是 scala):

val query = QueryBuilder.update("twitter", "tweets")
  .`with`(QueryBuilder.set("sinceid", update.sinceID))
  .and(QueryBuilder.set("tweets", setAsJavaSet(update.tweets)))
  .where(QueryBuilder.eq("handle", update.handle))

我能够找到将元素添加到集合的实际 CQL:

UPDATE users
SET emails = emails + {'fb@friendsofmordor.org'} WHERE user_id = 'frodo';

但找不到使用 QueryBuilder 的示例。

基于我也尝试过的 CQL:

  .and(QueryBuilder.set("tweets", "tweets"+{setAsJavaSet(update.tweets)}))

但它没有工作。提前致谢

【问题讨论】:

    标签: scala cql datastax cql3 datastax-java-driver


    【解决方案1】:

    使用add(一次添加一个元素)或addAll(一次多个任意数量的元素)方法添加到集合中。

    【讨论】:

      【解决方案2】:

      扩展Ananth's answer

      QueryBuilder.add 不支持BindMarker。在set中添加时使用BindMarker,只能使用QueryBuilder.addAll。*

      *请注意,Collections.singleton 在这方面可能会派上用场。

      【讨论】:

        猜你喜欢
        • 2017-01-03
        • 1970-01-01
        • 2019-09-21
        • 1970-01-01
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多