在gremlin遍历中检查特定顶点是否存在

时间:2015-10-12 06:33:52

标签: titan gremlin tinkerpop

我试图首先检查一个特定的顶点是否存在于图形中,如果它不存在然后我创建一个新的顶点,检查器基于属性,这是以下代码:

<application ... />

但是我收到了以下错误。

public Vertex addVertex(Enum label, Map properties){

    Vertex x = null;int fl=0,f=0;

    if(properties.size()==0)
    return null;

    GraphTraversalSource g = graph.traversal();
    Set<Enum> keys = properties.keySet();
    for(Enum key: keys){
        f++;
        properties.get(key);
        System.out.println("enter");
        if(g.V().hasLabel(label.toString()).has(key.toString(),properties.get(key)).next()!=null  ){
        fl++;
        System.out.println("exit");
        x=  g.V().hasLabel(label.toString()).has(key.toString(),properties.get(key)).next();
        System.out.println("exit2");
        }
    }
    if(fl==f){
        return x;
    }
    x=graph.addVertex(T.label,label.toString(),properties);
    return x;
}

如何解决这个问题,任何潜在客户都会非常感激

1 个答案:

答案 0 :(得分:1)

Traversal实现了Iterator,因此您应该首先将.hasNext()附加到Traversal。当没有剩余值时,当你尝试next()迭代器时,会抛出异常。