我想在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操作。
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.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));
}
如果你看一下QueryBuilder类,有add,addAll和remove,removeAll方法来处理set更新。