我想在我的cassandra分贝中查询。 我想要检索超级列中的单个列中的数据,该超级列在超级列中...有点复杂,但我需要它来模拟我的数据库。Cassandra Hector API结果对象
我用赫克托的文档:http://www.datastax.com/sites/default/files/hector-v2-client-doc.pdf
但是,当我尝试读取单个列,此文档目的使用此方法:
<code>ColumnQuery<String, String, String> columnQuery =
HFactory.createStringColumnQuery(keyspace);
columnQuery.setColumnFamily("Standard1").setKey("jsmith").setName("first");
Result<HColumn<String, String>> result = columnQuery.execute(); </code>
但是,什么是“结果”?我在谷歌搜索,我发现结果是一个对象结果,但我有所有的图书馆,没有人知道这个对象。
我的QueryResult中替换的结果,但是,当我启动我的课主,我得到这个错误:
me.prettyprint.hector.api.exceptions.HInvalidRequestException:InvalidRequestException(原因:supercolumn参数不可选超级CF Super2) at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:45) at me.prettyprint.cassandra.service.KeyspaceServiceImpl $ 23.execute(KeyspaceServiceImpl.java:851) at me .prettyprint.cassandra.service.KeyspaceServiceImpl $ 23.execute(KeyspaceServiceImpl.java:1) at me.prettyprint.cassandra.servic e.Operation.executeAndSetResult(Operation.java:103) at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:258) at me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover(KeyspaceServiceImpl.java: 131) at me.prettyprint.cassandra.service.KeyspaceServiceImpl.getColumn(KeyspaceServiceImpl.java:857) at me.prettyprint.cassandra.model.thrift.ThriftColumnQuery $ 1.doInKeyspace(ThriftColumnQuery.java:57) at me.prettyprint .cassandra.model.thrift.ThriftColumnQuery $ 1.doInKeyspace(ThriftColumnQuery.java:1) 在me.prettyprint.cassandra.model.KeyspaceOperationCallback.doInKeyspaceAndMeasure(KeyspaceOperationCallback.java:20) 在me.prettyprint.cassandra.model.ExecutingKeyspace。 doExecute(ExecutingKeyspace.java:85) at me.prettyprint.cassandra.model.thrift.ThriftColumnQuery.execute(ThriftColumnQuery.java:52) at com.riptano.cassandra.hector.example.InsertSuperColumn.main(InsertSuperColumn.java:74) InvalidRequestException(为什么:supercolumn参数对于超级CF Super2不是可选的) at org.apache.cassandra.thrift.Cassandra $ get_result.read(Cassandra.java:5930) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java: 78) 在org.apache.cassandra.thrift.Cassandra $ Client.recv_get(Cassandra.java:505) 在org.apache.cassandra.thrift.Cassandra $ Client.get(Cassandra.java:490) 我。 prettyprint.cassandra.service.KeyspaceServiceImpl $ 23.execute(KeyspaceServiceImpl.java:846) ... 11更多
当我聚焦到其导致此错误其行的行:
**QueryResult<HColumn<String, String>> result5 = result3.execute();**
其中I由QueryResult中替换结果。
我该如何解决它?
看来您正在针对超级CF运行标准CF查询。您的代码显示您正在针对“Standard1”运行查询,但该例外是针对“Super2”的查询。你确定这段代码产生这个异常吗? –
我敢肯定,那为什么我的代码存在一些问题。 Cassandra的配置非常奇怪:/ – superstarz
我建议在Cassandra IRC频道中询问这个问题,因为它可能更适合这类问题。 –