Добавить свойство к уже существующей вершине в Java - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь добавить свойство в уже существующую вершину на удаленном сервере gremlin.

Вот как создается вершина:

String LABEL = "label";
String NAME = "name";
String ID = "id";
String TEST = "test";

GryoMessageSerializerV3d0 serializer = new GryoMessageSerializerV3d0(GryoMapper.build().addRegistry(TinkerIoRegistryV3d0.instance()));
cluster = Cluster.build().addContactPoint("localhost").port(8182).serializer(serializer).create();
client = cluster.connect();
Graph graph = EmptyGraph.instance();
GraphTraversalSource g = JanusGraphFactory.open("/Users/user/Documents/stage/tinkerPop/Project/janusgraph-eval/janusgraph-0.3.1/conf/gremlin-server/janusgraph-cql-es-server.properties").traversal().withRemote(DriverRemoteConnection.using(cluster));
final Bindings b = Bindings.instance();
Vertex v1 = g.addV(b.of(LABEL, "transaction")).property(NAME, b.of(NAME, nameOfVertex1)).property(ID, b.of(ID, id1)).next();

Делаем это:

g.V(v1).property(VertexProperty.Cardinality.single, TEST, b.of(TEST, "test")).next();

или это:

GraphTraversal v1 = g.addV(b.of(LABEL, "transaction")).property(NAME, b.of(NAME, nameOfVertex1)).property(ID, b.of(ID, id1));
v1.property(VertexProperty.Cardinality.single, TEST, b.of(TEST, "test")).next();

выдает мне следующую ошибку:

java.util.concurrent.CompletionException: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: The type of given name is not a key: test

Я посмотрел документацию по tinkerpop и различные учебные пособия / веб-сайты, но нашел только способ добавить свойства свойств (см. Как добавить свойство в свойство вершины в java? )

Знаете ли вы, как добавить новое свойство в уже существующую вершину?

1 Ответ

0 голосов
/ 04 апреля 2019

Я обнаружил, что использование GremlinPipeline решает проблему.

GremlinPipeline pipe = new GremlinPipeline();
pipe.start(g.V(id).property("name", "value").next());

добавляет свойство по желанию

...