Я хотел бы изменить свойства нескольких вершин без использования длинных обходов (см. http://tinkerpop.apache.org/docs/current/recipes/#long-traversals).. Из соображений производительности у меня есть локальный кеш идентификаторов вершин.
Я хотел бы сделать кодкак (в Tinkerpop 3.3.3):
var list = [ ["id": 123, "prop": "foo"], ["id": 456, "prop": "bar"] ];
g.inject(list)
.unfold()
.as("map")
.V(__.select("id"))
.property("prop", __.select("map").select("prop"))
.iterate();
Но я получил следующее исключение:
java.lang.IllegalArgumentException: Expected an id that is convertible to Long but received class com.dcbrain.flowengine.dsl.DefaultFlowEngineTraversal
at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph$DefaultIdManager$1.convert(TinkerGraph.java:587)
at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph.lambda$createElementIterator$4(TinkerGraph.java:316)
Есть ли обходной путь или другая версия Tinkerpop поддерживает это?