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

How to write QueryBuilder Query for update Collections(Set) in Cassandra

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

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

JAVA中,我尝试使用以下方法。我不知道如何在 QueryBuilder 命令的集合操作中写 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));
}

如果您查看 QueryBuilder class,其中有用于处理集合更新的 add、addAll 和 remove、removeAll 方法。

您想使用 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));
}