java - Gremlin 通过 java 读取外部 JSON 顶点并添加到现有开放图给出了 Invalid vertexprovided 异常?

标签 java json titan gremlin

我正在尝试读取外部 JSON 顶点并将其添加到现有的开放泰坦图中。如下:

gremlin> newVertex = graph.io(GraphSONIo.build()).reader().create().readVertex(new FileInputStream("/tmp/sample_vertex.json"),null);
gremlin> v[42092]
gremlin> existingVertex = graph.V(4145).next();
gremlin> v[4145]
gremlin> existingVertex.addEdge("has",newVertex);
Invalid vertex provided: v[42092]

我已经使用 GraphSON.io 导出顶点,如下所示:

gremlin> graph.io(GraphSONIo.build()).writer().create().writeVertex(new FileInputStream("/tmp/sample_vertex.json"),g.V().next());

最佳答案

readVertex 的签名如下所示:

Vertex readVertex(InputStream inputStream, Function<Attachable<Vertex>, Vertex> vertexAttachMethod)

如果您向 vertexAttachMethod 提供 null,则不会尝试将顶点附加到图形,而您只会得到一个未附加的 StarVertex 作为结果。请考虑这种方法:

gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> start = graph.io(GraphSONIo.build()).reader().create().readVertex(new FileInputStream('v.json'), Attachable.Method.create(graph))
==>v[1]
gremlin> gremlin> g.V(start).as('start').
......1>   addV().as('end').
......2>   addE('has').from('start').to('end')
==>e[1][1-has->0]

关于java - Gremlin 通过 java 读取外部 JSON 顶点并添加到现有开放图给出了 Invalid vertexprovided 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42205064/

相关文章:

java - JavaLangAccess.blockedOn(Thread t, Interruptible b) 是做什么的?

java - java读取文件时如何转义以特殊字符开头的行

ios - json.swift 错误是 Self.init 未在委托(delegate)初始化程序的所有路径上调用

vertex - 泰坦删除顶点无法正常工作

node.js - 在 AWS 上使用 Titan DynamoDB 并从 NodeJs 进行查询

java - 如何将 2 个 APK 加入到 1 个 APK 中?

java - 如果我还不知道涉及的任何框架,我应该采用什么方法来理解大型 J2EE 应用程序?

json - Swift - 检查 JSON 是否有效

javascript - 来自 JSON 数据的 Google map 标记 - "Failed to load resource"

cassandra - Gremlin 服务器 Cassandra