我想直接使用OCommandGremlin來查詢頂點和邊的屬性。我有幾個不同的用例,但爲了解釋這個問題,這裏是一個簡單的場景。如何使用OCommandGremlin直接查詢頂點屬性?
場景:查找所有直接連接的ID。
方法1:查詢頂點,然後找到ID。
這工作,這裏是我的示例工作代碼。
public void printConnections(Long personId) {
Object vertexId = getNode(PERSON, personId).getId();
String oSql = "g.v(vId).both.dedup";
Map<String, Object> params = new HashMap<String, Object>();
params.put("vId", vertexId);
OrientDynaElementIterable result = getGraph()
.command(new OCommandGremlin(oSql)).execute(params);
Iterator<Object> iterator = result.iterator();
while (iterator.hasNext()) {
OrientVertex v = (OrientVertex) iterator.next();
Long idx = v.getProperty("idx");
System.out.println(idx);
}
}
方法2:直接ID查詢。
代碼:
public void printConnections2(Long personId) {
Object vertexId = getNode(PERSON, personId).getId();
String oSql = "g.v(vId).both.dedup.idx";
Map<String, Object> params = new HashMap<String, Object>();
params.put("vId", vertexId);
OrientDynaElementIterable result = getGraph()
.command(new OCommandGremlin(oSql)).execute(params);
Iterator<Object> iterator = result.iterator();
while (iterator.hasNext()) {
Object obj = iterator.next(); // Exception here.
System.out.println(obj);
}
}
令人驚訝的林在iterator.next得到NoSuchElementException異常()調用。
java.util.NoSuchElementException在com.tinkerpop.blueprints.impls.orient.OrientDynaElementIterator.next(OrientDynaElementIterator.java:57) ...更多呼叫跟蹤...
迭代器指向該ArrayList只有空值。可能這就是NoSuchElementException的原因。 OCommandGremlin Response for prop query
任何想法?
我有你同樣的問題,如果我會解決問題,我會讓你知道 –
我做了一些調試,並找出了爲什麼林得到例外。 – Vineeth