Как запустить несколько команд gremlin как одну транзакцию? - PullRequest
1 голос
/ 04 июля 2019

В Amazon Neptune я хотел бы запускать несколько команд Gremlin в Java как отдельные транзакции.В документе говорится, что tx.commit () и tx.rollback () не поддерживаются.Это предполагает следующее: несколько операторов, разделенных точкой с запятой (;) или символом новой строки (\ n), включаются в одну транзакцию.

Пример из документа показывает, что Gremlin поддерживается в Java, но я не понимаю, как "Несколько операторов, разделенных точкой с запятой"

GraphTraversalSource g = traversal (). WithRemote (DriverRemoteConnection.используя (кластер));

    // Add a vertex.
    // Note that a Gremlin terminal step, e.g. next(), is required to make a request to the remote server.
    // The full list of Gremlin terminal steps is at https://tinkerpop.apache.org/docs/current/reference/#terminal-steps
    g.addV("Person").property("Name", "Justin").next();

    // Add a vertex with a user-supplied ID.
    g.addV("Custom Label").property(T.id, "CustomId1").property("name", "Custom id vertex 1").next();
    g.addV("Custom Label").property(T.id, "CustomId2").property("name", "Custom id vertex 2").next();

    g.addE("Edge Label").from(g.V("CustomId1")).to(g.V("CustomId2")).next();

1 Ответ

0 голосов
/ 05 июля 2019

doc , на который вы ссылаетесь, предназначен для использования режима "строка" для отправки запроса. В вашем подходе вы используете режим «байт-кода», используя удаленный экземпляр источника обхода графа (объект «g»). Вместо этого вы должны отправить строковый скрипт через клиентский объект

Client client = gremlinCluster.connect();
client.submit("g.V()...iterate(); g.V()...iterate(); g.V()...");  
...