Допустим, у меня есть два узла - A и B.
Я пытаюсь объединить эти два узла в граф, используя gremlin - Java. Смог сгенерировать запрос, используя этот ответ SO - https://stackoverflow.com/a/46435070
g.V(parentNode).union(identity(), janusClient.g.V(aliasNode))
.unfold()
.sideEffect(properties().group("p").by(T.key).by(value()))
.sideEffect(__.outE().group("o").by(T.label).by(__.project("p","iv").by(__.valueMap()).by(__.inV()).fold()))
.sideEffect(__.inE().group("i").by(T.label).by(__.project("p","ov").by(__.valueMap()).by(__.outV()).fold()))
.sideEffect(__.drop())
.cap("p","o","i").as("poi")
.addV().as("u")
.sideEffect(
__.select("poi").select("p").unfold().as("kv")
.select("u").property(__.select("kv").select(Column.keys), __.select("kv").select(Column.values)))
.sideEffect(
__.select("poi").select("o").unfold().as("x").select(Column.values)
.unfold().addE(__.select("x").select(Column.keys)).from(__.select("u")).to(__.select("iv")))
.sideEffect(
__.select("poi").select("i").unfold().as("x").select(Column.values)
.unfold().addE(__.select("x").select(Column.keys)).from(__.select("ov")).to(__.select("u"))).iterate();
Проблема в этой строке .addE(__.select("x").select(Column.keys))
на последнем шаге sideEffect. Это не компилируется, поскольку .addE
ожидает аргумент типа Traversal
, а __.select("x").select(Column.keys)
возвращает результат типа GraphTraversal
.
Замена на String.valueOf(.addE(__.select("x").select(Column.keys)))
не дает желаемых результатов.
Любая помощь приветствуется!