Множество свойств запроса с неизвестным номером - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь добавить несколько свойств в вершину гремлина. Каждый раз, когда у меня разное количество свойств и разные свойства, мне нужно сделать запрос динамическим c на основе карты, чтобы создать или обновить свойства. Я нашел это gremlin python - добавить кратное, но неизвестное количество свойств к вершине и попытался сделать то же самое с той разницей, что я создаю экземпляр jansugraph, но получаю ошибку. Любые идеи будут более чем приветствоваться.

Ниже написано непосредственно в консоли gremlin, тогда я переведу его на java код.

graph =JanusGraphFactory.open("conf/test.properties")
g = graph.traversal()
test = [["testKey":"testValue"]]
g.inject(test).unfold().as("test")
 .V(20704).as("v").sideEffect(select("test"))
 .unfold().as("kv").select("v")
.property(select("kv").by(Column.keys),select("kv").by(Column.values)).iterate()

и ошибка, которую я получаю

The provided object does not have accessible keys: class org.janusgraph.graphdb.vertices.CacheVertex
Type ':help' or ':h' for help.
Display stack trace? [yN]y
java.lang.IllegalArgumentException: The provided object does not have accessible keys: class org.janusgraph.graphdb.vertices.CacheVertex

Любые идеи о том, что я делаю неправильно, я не могу найти, что использовать для ключей и значений относительно Януса

1 Ответ

1 голос
/ 30 марта 2020

Основная часть запроса должна находиться внутри шага sideEffect. Так что-то вроде ...

g.inject(test).unfold().as("test").
  V(20704).as("v").
  sideEffect(select("test").
     unfold().as("kv").
     select("v").
     property(select("kv").by(Column.keys),
              select("kv").by(Column.values))).
  iterate()
...