2

我能夠使用java的本機api在DSE圖中添加邊緣。 但是當我嘗試在java中使用流暢的api添加邊緣時,它不起作用。 我通過流利的api文檔,沒有什麼可以顯示如何添加邊緣。當我嘗試添加邊緣在java中它給告訴邊緣運行時錯誤不能被添加DataStax Enterprise Graph使用Fluent API添加Edge

有沒有辦法用流利的API從Java添加一個邊緣

想用流利的API,因爲它從Java代碼更易讀

示例代碼:

可以說有一個叫做用戶頂點。另一個叫做電影的頂點。我想要一個用戶和電影之間的邊緣。這是我在java中嘗試的。我能夠添加頂點(代碼顯示只添加一個頂點)並且它工作正常。不知道邊緣部分,當我嘗試添加邊緣我得到運行時間錯誤

GraphTraversal<Vertex,Vertex> traversal = g.addV("user").property("name", 
"abcd"); 
GraphStatement graphStatement = DseGraph.statementFromTraversal(traversal); 
GraphResultSet grs = dseSession.executeGraph(graphStatement); 
Vertex user1 = g.V().has("user","name","abcd").next(); 
g.V().has("movie","name","movie1").next().addEdge("ratedBy",user1) 
+0

請更新您的問題,以顯示你的一些代碼對你是如何試圖創建邊緣。 –

+0

@stephenmallette已更新示例代碼 –

回答

1

它不會工作的方式。只要你做到這一點(即調用next()):

g.V().has("movie","name","movie1").next().addEdge("ratedBy",user1) 

您不再使用遍歷API。之後的一切都是Graph API,Graph API不支持遠程執行。更清楚的是,調用next()會發出一個Vertex,它不是Traversal API的一部分。查看javadocs可能會讓這個區別更加清晰。 Graph API用於供應商(實現TinkerPop接口的那些供應商)並且是here。 Traversal API面向用戶,它在內部利用Graph API針對不同的圖形實現執行Gremlin。 Traversal API主要由here顯示的GraphTraversalGraphTraversalSource類組成。

你應該簡單地執行一個遍歷來構造邊緣:

g.addV('user').property('name','abcd').as('user'). 
    V().has('movie','name','movie1'). 
    addE('ratedBy').to('user') 
+0

感謝澄清this.this工作 –

相關問題