【问题标题】:Kundera Cassandra Delete a row based on Indexed columnKundera Cassandra 根据索引列删除一行
【发布时间】:2015-12-17 19:41:54
【问题描述】:

如何根据索引列删除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() 并使用 for 循环删除 List 中的所有元素。 这个查询被 kundera 修改为追加LIMIT 100 ALLOW Filtering

Kundera for Cassandra - Deleting record by row key 发现了一个与此类似的问题,但在 2012 年被问到,之后 cassandra 和 Kundera 发生了很多变化。

【问题讨论】:

    标签: cassandra kundera


    【解决方案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();
    

    【讨论】:

    • 如何获得所有结果。有什么办法可以得到NextResults
    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2018-09-04
    • 2022-11-17
    • 2019-02-24
    • 2016-07-07
    • 1970-01-01
    相关资源
    最近更新 更多