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

时间:2013-11-07 07:54:03

标签: java cassandra cql3 datastax-java-driver

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

        <artifactId>cassandra-driver-core</artifactId>
        <version>1.0.3</version>

表“a”有2列: 1. String类型的id 2. TimeUuid类型的LMD

这就是我正在做的事情,似乎不对,当然不起作用

    Query q = QueryBuilder
    .select()
    .all()
    .from("test","a")
    .where().and(QueryBuilder.gt("LMD", "minTimeUUid('2013-11-03 14:33:50')"))
    .and(QueryBuilder.lt("LMD", "maxTimeUUId('2013-11-03 14:45:50')"));

任何指针都非常受欢迎

由于

1 个答案:

答案 0 :(得分:7)

您需要使用utils.UUIDs实用程序类从时间戳以编程方式生成最大/最小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));