如何根据索引列删除cassandra中的行?
尝试:
upload_id作为索引添加到表格中。
Delete from table where upload_id = '"+uploadId+"'"
但是这给了我一个错误"NON PRIMARY KEY found in where clause"
。
String selectQuery = "Select hashkey from table where upload_id='" + uploadId + "'"
entityManager.createNativeQuery(selectQuery).getResultList()
并使用for循环删除List中的所有元素。
kundera更改此查询以追加LIMIT 100 ALLOW Filtering
。
在Kundera for Cassandra - Deleting record by row key发现了一个与此类似的问题,但是在2012年之后,cassandra和Kundera发生了很多变化。
答案 0 :(得分: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();