2015-12-17 3 views
0

Как удалить строки в cassandra на основе индексированного столбца?Kundera Cassandra Удалить строку на основе индексированного столбца

Пытались:

upload_id добавляется в качестве индекса в таблице.

  1. Delete from table where upload_id = '"+uploadId+"'" Но это дает мне ошибку "NON PRIMARY KEY found in where clause".

  2. String selectQuery = "Select hashkey from table where upload_id='" + uploadId + "'"

entityManager.createNativeQuery(selectQuery).getResultList() и удалить все элементы в списке, используя для цикла. Этот запрос изменен kundera для добавления LIMIT 100 ALLOW Filtering.

У вас есть такой же вопрос, как и у Kundera for Cassandra - Deleting record by row key, но это было задано в 2012 году, после чего было внесено множество изменений в cassandra и Kundera.

ответ

0

Kundera по умолчанию использует LIMIT 100. Вы можете использовать query.setMaxResults(<integer>), чтобы соответствующим образом изменить предел, а затем запустить цикл.

Пример:

Query findQuery = entityManager.createQuery("Select p from PersonCassandra p where p.age = 10", PersonCassandra.class); 
findQuery.setMaxResults(5000); 
List<PersonCassandra> allPersons = findQuery.getResultList(); 
+0

как получить все результаты. Есть ли способ getNextResults – Prabhath

Смежные вопросы