【发布时间】:2013-04-03 20:27:19
【问题描述】:
我的列族将数据存储在列名中,我想使用 Astyanax 对列执行范围查询。任何人都可以建议如何做到这一点?
【问题讨论】:
我的列族将数据存储在列名中,我想使用 Astyanax 对列执行范围查询。任何人都可以建议如何做到这一点?
【问题讨论】:
有很多关于范围查询的示例here
样品一
keyspace.prepareQuery(CF_TIME_UUID)
.getKey(rowKey)
.withColumnRange(
new RangeBuilder()
.setLimit(10)
.setStart(TimeUUIDUtils.getTimeUUID(0))
.setEnd(TimeUUIDUtils
.getTimeUUID(Long.MAX_VALUE >> 8))
.build()).execute();
【讨论】:
我同意 abhi 的观点,这正是 Playorm 实现它的方式。您可以在https://github.com/deanhiller/playorm/blob/master/src/main/java/com/alvazan/orm/layer9z/spi/db/cassandra/CassandraSession.java 看到 columnSlice() API 的代码
另外,如果您使用 Playorm for Cassandra,您可以只使用其 ColumnSlice API。示例在https://github.com/deanhiller/playorm/blob/master/src/test/java/com/alvazan/test/TestColumnSlice.java
【讨论】:
实际上,如果您的最终目标是取出实体,您也可以使用 PlayOrm 查询语言。
【讨论】: