Astyanax通过UUID检索



如何使用Astyanax检索Cassandra中的行?

我有一个web应用程序,它需要在服务器端进行分页,数据库是cassandra。行键是一个UUID,我在一行中只有几列,所以我试图对行键进行分页。

我提出了一个我并不完全满意的解决方案。问题是,当我根据从UI获得的搜索过滤器进行第一次搜索时,我不知道第一行的UUID,所以我准备了一个Query,它给了我前6条记录,我将第6条记录的密钥存储在MAP中,并将其放入会话中,所以当用户从UI请求第二个页面时,我检索这个密钥(UUID),并将它作为检索下一组记录的开始。我试图找到一个更干净的方法。

编辑以响应问题更改。。。

在这种情况下,听起来你做得很好。听起来你也在使用OOP,否则行就不整齐了。虽然playOrm的解决方案更优雅,可以为您返回存储在会话中的光标,但我认为您所拥有的一切都很好。

代码更改后编辑这个链接中的第74行是我们如何做的(您可以深入到那个游标类,基本上可以看到我们做了什么)。

https://github.com/deanhiller/playorm/blob/master/src/main/java/com/alvazan/orm/layer9z/spi/db/cassandra/CassandraSession.java

如果你有10个行键,你只需要在键列表中传递。

我不知道你说的分页是什么意思????你是说你有一个from和to行键,并且想要它们之间的行吗?那么你是用按行键排列集群吗?

另一个完全不同的排序方向是playOrm,尽管它可以执行S-SQL,如果事情是分区的,你可以执行联接和其他类似操作(上面的链接实际上是指向playOrm中的一个文件)。

我真的不知道你"你没有带行密钥"是什么意思

稍后,Dean

最新更新