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

Текущий подход, который я использую для удаления строк на основе индексированного столбца

  1. Выберите запрос с лимитом 100.
  2. Если есть строки Удалите все выбранные строки одну за другой.
  3. Сбросить менеджер сущностей.
  4. Переходите к шагу 1.

Использование cassandra 2.1.8 и kundera-cassandra-ds-driver для извлечения строк из Кассандры.

Есть ли способ запустить запрос на удаление из Кундеры.

1 ответ

Решение

Вы можете сделать следующее:

Query findQuery = entityManager.createQuery("Delete from PersonCassandra p where p.age = 10",
            PersonCassandra.class);
findQuery.setMaxResults(5000);
findQuery.executeUpdate();

PS: Cassandra не позволяет удалять строки, основанные на неосновных ключах, Kundera обрабатывает это внутренне аналогично тому, как вы это делаете.

Другие вопросы по тегам