GraphTraversal<Vertex, Map<String, Object>> tsList = traversalSource.V().has("request","id_key",114).valueMap();
while(tsList.hasNext())
{
System.out.println(tsList.next().get("status")); //prints result
System.out.println(tsList.next().get("tree_id_key")); //prints result
System.out.println(tsList.next().get("username")); //here throws Exception for any vertex.
System.out.println(tsList.next().get("tree_status"));
}
當我運行上面的查詢,我對任何第一和第二PROPERTYKEY獲取值。但在得到兩個鍵的答案後它爲任何propertyKey拋出NoFastSuchElementException ...請幫助我..如何解決這個問題?入門NoFastSuchElementException,當我在小鬼查詢中使用valueMap()與Java
但使用下面的查詢我能夠得到答案:
GraphTraversal<Vertex, Map<String, Object>> tsList = traversalSource.V().has("request","id_key",114).values("status","tree_id_key","username","tree_status");
while(tsList.hasNext())
{
System.out.println(tsList.next());//prints "status" value
System.out.println(tsList.next());//prints "tree_id_key" value
System.out.println(tsList.next());//prints "username" value
System.out.println(tsList.next());//prints "tree_status" value
}
更新:
GraphTraversal<Vertex, Map<String, Object>> ts = traversalSource.V().has("request","id_key",113).valueMap();
while(ts.hasNext())
{
Map<String, Object> tsList=ts.next();
SuiteIdKey=(long)((ArrayList)tsList.get("suiteKey")).get(0);
seqe=(int)((ArrayList)tsList.get("sequence")).get(0);
}
在上面的查詢,TS將返回多行,每一行我會得到suiteIdkey ,seqe ..我能夠得到答案。但tsList是Map <>,當我使用像這樣的=(long)tsList.get(「suiteKey」)時,它不直接返回答案,沒有ArrayList。這是正確的方式嗎?請幫助我。
嗨斯蒂芬,感謝您的answer..it工作now..but我有一些懷疑..我已經更新了有關這個問題..你可以幫我解決這個問題? – User12345
是的 - 你因爲[多屬性](http://tinkerpop.apache.org/docs/current/reference/#vertex-properties)而得到'List' - 我稍微更新了我的答案。 –
@ stephen ..我創建了我的id_key,用戶名屬性cardinality.SINGLE,現在當我試圖檢索使用valueMap(「我的id_key」,「用戶名」),它返回列表..所以valueMap總是返回列表,因爲多屬性,無論cardinality.SINGLE還是cardinality.LIST? (和cardinality.LIST只能有相同的屬性值的值列表) – User12345