如何使用 DataStax QueryBuilder 将元素添加到集合中?
How do you add elements to a set with DataStax QueryBuilder?
我有一个 table,其列类型是
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)}))
但是没有用。提前致谢
使用add
(一次添加一个元素)或addAll
(多个一次任意数量的元素)方法添加到一组。
扩展:
QueryBuilder.add
不支持BindMarker
。添加set时使用BindMarker,只需要使用QueryBuilder.addAll
*
*请注意,Collections.singleton
在这方面可能会派上用场。
我有一个 table,其列类型是
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)}))
但是没有用。提前致谢
使用add
(一次添加一个元素)或addAll
(多个一次任意数量的元素)方法添加到一组。
扩展
QueryBuilder.add
不支持BindMarker
。添加set时使用BindMarker,只需要使用QueryBuilder.addAll
*
*请注意,Collections.singleton
在这方面可能会派上用场。