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

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

Пытался:

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() и удалите все элементы списка, используя цикл for. Этот запрос изменен кундерами для добавления LIMIT 100 ALLOW Filtering,

Нашел вопрос, похожий на этот, в Кундере для Кассандры - удаление записи по ключу строки, но этот вопрос был задан в 2012 году, после этого в Кассандре и Кундере было много изменений.

1 ответ

Кундера по умолчанию использует 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();
Другие вопросы по тегам