2

Datastax Java Driverを使用してグラフを完全に作成したいと考えています。私は頂点を挿入することができましたが、私は既存の頂点にエッジを追加する方法を知りません。Javaドライバを使用したDSEグラフ、エッジの追加方法

私は次のコード

session.executeGraph("parent = g.V().has('businessId','sys-1').next()"); 
session.executeGraph("child = g.V().has('businessId','sys-2').next()"); 
session.executeGraph("parent.addEdge('consistsOf', child)"); 

を実行すると、私はそれが正常に動作しているgremlin_console_windowにグレムリンステートメントを実行すると、私は例外

Exception in thread "main" com.datastax.driver.core.exceptions.InvalidQueryException: No such property: parent for class: Script285 
    at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:50) 
    at com.datastax.driver.dse.DriverThrowables.propagateCause(DriverThrowables.java:29) 
    at com.datastax.driver.dse.DefaultDseSession.executeGraph(DefaultDseSession.java:77) 
    at com.datastax.driver.dse.DefaultDseSession.executeGraph(DefaultDseSession.java:64) 
    at de.pratho.valpro.tools.Main.main(Main.java:41) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: No such property: parent for class: Script285 
    at com.datastax.driver.core.Responses$Error.asException(Responses.java:136) 
    at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:179) 
    at com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:173) 
    at com.datastax.driver.core.RequestHandler.access$2500(RequestHandler.java:43) 
    at com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:788) 
    at com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:607) 
    at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1012) 
    at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:935) 
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) 
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) 
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) 
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) 
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) 
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) 
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) 
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) 
    at java.lang.Thread.run(Thread.java:745) 

を取得します。だから私はparentchildのような変数は、Java内で動作していないと思うDseSession

残念ながら、私はJava Driverで正しく動作する方法について多くの情報を見つけることができませんでした。

答えて

12

あなたが同じスクリプトのコンテキスト内で、それを作成するために持っているように見え、すなわち:

DseCluster dseCluster = DseCluster.builder() 
      .addContactPoint("127.0.0.1") 
      .withGraphOptions(new GraphOptions().setGraphName("demo")) 
      .build(); 
DseSession dseSession = dseCluster.newSession(); 
SimpleGraphStatement s = new SimpleGraphStatement(
      "def v1 = g.V(id1).next()\n" + 
      "def v2 = g.V(id2).next()\n" + 
      "v1.addEdge('relates', v2)"); 
dseSession.executeGraph(s); 

私はこの理由は、これらのコマンドは、単に独立したグレムリンクエリとして解釈されているということだと思います。

私はthisのドキュメントがあなたに役立つと信じています。

+0

これは、おかげで、ありがとう! –

関連する問題