Когда я делаю g.V().propertyMap()
, я могу получить свойства, хранящиеся в вершинах. Однако, когда я на самом деле итерирую g.V()
и пытаюсь получить свойства самостоятельно, кажется, что их нет.
Вот пример кода:
System.out.println("propertymap: " + g.V().propertyMap());
g.V().propertyMap().forEachRemaining(e -> System.out.println(e.toString()));
Iterator<Vertex> vi = g.V();
while (vi.hasNext()) {
Vertex vertex = vi.next();
System.out.println("keys for " + vertex.label() + ": "
+ vertex.keys()
+ " properties.hasNext: "
+ vertex.properties().hasNext());
}
и соответствующий вывод:
propertymap: [GraphStep(vertex,[]), PropertyMapStep(property)]
{Name=[vp[Name->Justin]]}
{Name=[vp[Name->Bob]]}
keys for Person: [] properties.hasNext: false
keys for Person: [] properties.hasNext: false
Как видите, вызов forEachRemaining
может правильно вывести отображение ключа свойства на VertexProperty
, который сопоставляет ключ со значением.
Но мой код для повторения одного и того же набора вершин g.V()
вручную вообще не может найти никаких свойств.
Я думаю, что у меня есть какое-то принципиальное недопонимание того, что происходит (я только начал изучать, как это использовать), хотел бы быть просветленным о том, что мне не хватает.