[英]How to commit and rollback graph operations in Datastax DSE 5.0 Graph?
[英]executeGraph() is not really needed in Datastax DSE 5.0 Graph with Java?
似乎在兩種方法中都存儲了頂點,以后可以正確地對其進行檢索。
常用配置:
DseCluster dseCluster = DseCluster.builder()
.addContactPoint("192.168.1.43")
.build();
DseSession dseSession = dseCluster.connect();
GraphTraversalSource g = DseGraph.traversal(
dseSession, new GraphOptions().setGraphName("graph")
);
方法1:
Vertex v = g.addV("User").property("uuid","testuuid231").next();
方法二:
GraphStatement graphStatement = DseGraph.statementFromTraversal(
g.addV("User").property("uuid","testuuid231")
);
GraphResultSet grs = dseSession.executeGraph(graphStatement.setGraphName("graph"));
Vertex v = grs.one().asVertex() // as(Vertex.class) is not allowed after 1.1
看起來您正在使用java-dse-graph
,對嗎? 這是一個相對較新的API(仍處於beta版),使您可以使用幕后的DataStax Enterprise Java驅動程序通過Apache Tinkerpop進行Gremlin遍歷。
方法1的好處是,盡管您也可以通過statementFromTraversal
獲得有效的遍歷,但是您可以確保對一個遍歷進行有效遍歷(也可以將String
或GraphStatement
傳遞給executeGraph
,此時您不能確定自己正在執行有效遍歷)。 此外,由於您使用的是Tinkerpop API,而不是datastax驅動程序,因此您可以編寫與供應商無關的代碼。 好吧,您仍在使用它,但是一旦從DseSession
獲得GraphTraversalSource
,就不會直接使用它。
方法2有一些好處,但尚無法在方法1中獲得:
ResultSet
, Statement
等)。 java-dse-graph
(尚未嘗試過)。 使用statementFromTraversal
,可以將生成的GraphStatement
傳遞到DseSession.executeAsync
進行異步。 java-dse-graph
進行此操作。 在此之前,您必須使用executeGraph(String|GraphStatement)
。 我希望將來java-dse-graph
(方法1)將成為與DSE Graph交互的更慣用的方式。 statementFromTraversal
提供了一種很好的方式來獲得兩全其美(Apache TinkerPop的優勢+ DataStax Java驅動程序的接口)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.