用于基于maxTimeuuid和minTimeuuid的查询的Java API

用于基于maxTimeuuid和minTimeuuid的查询的Java API,java,cassandra,cql3,datastax-java-driver,Java,Cassandra,Cql3,Datastax Java Driver,使用基于maxTimeuuid和minTimeuuid的查询的Java API是什么?我在QueryBuilder或其他任何地方都找不到。我正在使用Datasax客户端 <artifactId>cassandra-driver-core</artifactId> <version>1.0.3</version> 非常感谢您的指点 谢谢您需要使用实用程序类从时间戳以编程方式生成max/min timeuuid,例如

使用基于maxTimeuuid和minTimeuuid的查询的Java API是什么?我在QueryBuilder或其他任何地方都找不到。我正在使用Datasax客户端

        <artifactId>cassandra-driver-core</artifactId>
        <version>1.0.3</version>
非常感谢您的指点


谢谢

您需要使用实用程序类从时间戳以编程方式生成max/min timeuuid,例如

final UUID min = UUIDs.startOf(lowerTimeStamp);
final UUID max = UUIDs.endOf(upperTimeStamp);
Query q = QueryBuilder
  .select()
  .all()
  .from("test","a")
  .where(QueryBuilder.gt("LMD", min))
  .and(QueryBuilder.lt("LMD", max));

感谢洛坎的洞察力。查询将无法按原样工作。您知道如何使用JavaAPI添加“允许过滤”吗?我知道这是Select类的一部分,但基于QueryBuilder…怎么做?我稍微编辑了一下(删除了空的
where
调用)。您是否有关于此错误的更多信息?是:以下是我执行此查询时的错误:无法执行此查询,因为它可能涉及数据筛选,因此可能具有不可预测的性能。如果要在性能不可预测的情况下执行此查询,请使用ALLOW FILTERINGAh,您需要包含主键-能否将表定义粘贴到问题中?@Masti,请在调用
where()
之前尝试调用
allowFiltering()
final UUID min = UUIDs.startOf(lowerTimeStamp);
final UUID max = UUIDs.endOf(upperTimeStamp);
Query q = QueryBuilder
  .select()
  .all()
  .from("test","a")
  .where(QueryBuilder.gt("LMD", min))
  .and(QueryBuilder.lt("LMD", max));