2016-05-11 9 views
0

Ich möchte QueryBuilder Abfrage für den folgenden CQL-Befehl in Java schreiben.Wie schreibe ich QueryBuilder Abfrage für Update Collections (Set) in Cassandra

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

In JAVA, versuche ich mit diesem folgenden. Ich weiß nicht, wie man schreibt hinzufügen in Set-Operation in QueryBuilder Befehl.

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)); 
} 

Antwort

1

Sie möchten QueryBuilder.addAll(String, Set<?>) verwenden, aber diese Methode benötigt Set als Parameter, nicht ArrayList.

So müssen Sie Ihre Methode wie folgt ändern:

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

Wenn man sich die QueryBuilder Klasse aussehen gibt es fügen, addAll und zu entfernen, removeAll Methoden für Set-Updates Handhabung.