2016-12-29 9 views
0

Привет, Я пытаюсь использовать TinkerGraph для некоторых небольших случаев демонстрации, и кажется, что он не сохраняется, используя GraphTraversalSource. Вот код, который я в настоящее время: TinkerGraph: почему мутация через GraphTraversalSource не сохраняется/сохраняется при использовании графика?

GraphTraversalSource g = TinkerGraph.open().traversal(); 
    System.out.println(g.V().addV("testlabel").iterate()); 
    System.out.println(g.V().count().next().intValue()); //returns 0 
    try {g.close(); } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 
    System.out.println(g.V().count().next().intValue()); //returns 0 

и здесь выход:

[TinkerGraphStep(vertex,[]), AddVertexStep({label=[testlabel]})] 
0 
0 

Я знаю, что это работает, вместо того, чтобы:

Graph graph = TinkerGraph.open(); 
Vertex gremlin = graph.addVertex("testlabel"); 
System.out.println(IteratorUtils.count(graph.vertices()) == 1); 

Спасибо :)

ответ

1

Похоже, что вам нужно использовать addV прямо из объекта GraphTraversalSource не из V() (по крайней мере для первого объекта). Следующий код сохраняется в вершинах в консоли gremlin

gremlin> g = TinkerGraph.open().traversal(); 
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] 
gremlin> g.V().addV("testing") 
gremlin> g.V().count() 
==>0 
gremlin> g.V().addV("testing") 
gremlin> g.V().count() 
==>0 
gremlin> g.addV("test"); 
==>v[0] 
gremlin> g.V().count() 
==>1 
gremlin> g.addV("test2"); 
==>v[1] 
gremlin> g.V().count() 
==>2 
gremlin> g.V().addV("testing3") 
==>v[2] 
==>v[3] 
gremlin> g.V().count() 
==>4 
+0

oh my bad! Благодаря! Я забыл, что '' 'V()' '' от '' 'V(). Count()' '' –