我有一个列类型为
的表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)}))
但它没有用。提前致谢
答案 0 :(得分:5)
使用add(一次添加一个元素)或addall(一次多个元素)方法添加到集合中。
答案 1 :(得分:0)
QueryBuilder.add
不支持BindMarker
。要在添加集合时使用BindMarker,必须仅使用QueryBuilder.addAll
。*
*仅需注意,Collections.singleton
在这方面可能会派上用场。