如何在 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));
}
我想在 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));
}