如何在Cassandra中为更新集合(Set)编写QueryBuilder查询

时间:2016-05-11 06:10:57

标签: java cassandra cassandra-2.0

我想在java中为以下CQL命令编写QueryBuilder查询。

UPDATE category_utility
      SET imageurls = imageurls + {'http://image1.jpg','http://image2.jpg','http://image3.jpg'} WHERE category_title = 'cat1';

JAVA 中,我尝试以下操作。我不知道如何在QueryBuilder命令中的set操作中编写 add

public void  addImageList(ArrayList<String> list, int categoryId) {
    Statement = QueryBuilder.update("category_utility").with(QueryBuilder.set("imageurls", list.toString())).where(QueryBuilder.eq("img_category_id", categoryId));
}

2 个答案:

答案 0 :(得分:2)

您想使用QueryBuilder.addAll(String, Set<?>),但该方法需要Set作为参数,而不是ArrayList

所以你需要修改你的方法如下:

public Statement addImages(Set<String> imageurls, int categoryId){
    return QueryBuilder.update("category_utility")
            .with(QueryBuilder.addAll("imageurls", imageurls))
            .where(QueryBuilder.eq("img_category_id", categoryId));
}

答案 1 :(得分:1)

如果查看QueryBuilder类,可以添加addAll和remove,删除所有处理集更新的方法。