当前位置: 首页 > 面试题库 >

如何以tinkerpop / gremlin格式而不是DSE图形格式返回顶点?

冉永宁
2023-03-14
问题内容

我正在尝试返回刚刚用Gremlin创建的Vertex(tinkerpop格式):

DseCluster dseCluster = DseCluster.builder()
        .addContactPoint(DbC.dseHost)
        .build();
DseSession dseSession = dseCluster.connect();
GraphTraversal traversal = graph.addV(VertexLabels.User)
        .property("username", "testuser")
GraphStatement graphStatement = DseGraph.statementFromTraversal(
    traversal
);
GraphResultSet grs = dseSession.executeGraph(graphStatement.setGraphName(DbC.graphName));
Vertex v = grs.one().as(Vertex.class);

我得到这个例外…

java.lang.ClassCastException: com.datastax.driver.dse.graph.DefaultVertex cannot be cast to org.apache.tinkerpop.gremlin.structure.Vertex

如何更改代码,使其以gremlin.structure.Vertex格式而不是DSE Graph Vertex格式返回

我在用:

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>dse-driver</artifactId>
    <version>1.1.1-beta1</version>
</dependency>
<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>java-dse-graph</artifactId>
    <version>1.0.0-beta1</version>
</dependency>

我希望可以做到这一点,否则从TitanDB进行迁移将很痛苦。


问题答案:

根据我通过jira和电子邮件与Datastax Team进行的冗长讨论,

确实可以使用Fluent API并获取纯Gremlin / tinkerpop对象。如此处所示(java-
dse图1.x文档
),可以在GraphTraversalSource上直接使用next()和toList()而不使用将返回DSE对象的executeGraph()来实现。

因此,以上代码更改为:

Vertex user = graph.addV("User")
                 .property("username", "testuser").next();

其中graphGraphTraversalSource<Vertex,Vertex>对象,Vertexorg.apache.tinkerpop.gremlin.structure.Vertex对象。



 类似资料:
  • 问题内容: 当我尝试进行一次遍历并使用Gremlin一次从DSE Graph 5.0中带来很多东西时,我对非常简单的事情感到非常沮丧。 在我简化的情况下,我有: 1个具有特定uuid的实体 实体可以具有零(请参阅可选)或更多类型 我需要能够返回和 我到目前为止可以工作的非常丑陋:( 列表中的每一行都有一个实体和以下类型之一:/ 我之所以这样做,是因为Vertex并没有根据DSE 5.0 Fluen

  • 在遍历图时,我想保存起始顶点,再进一步遍历一点,并将具有特定边的任何顶点移回保存的顶点。 这是我目前的尝试,但显然是不正确的: 如何检查Gremlin中的顶点相等?如何过滤掉存在此类相等的所有路径?

  • 我正在使用具有Big-Endian字节顺序格式的Java将字节数组值写入文件中。。现在我需要从C程序中读取该文件。。。 我正在写入文件的字节数组由三个字节数组组成,如下所述- 我正在将、和一起写入一个单字节数组,并将生成的字节数组写入一个文件,然后我将使用我的C程序从文件中检索该字节数组数据,然后反序列化以提取,和它的。 下面是我的工作Java代码,它将字节数组值写入大端格式的文件: 现在,我需要

  • 问题内容: 如何将Webmethod的值以JSON格式返回给客户端? 我要返回两个静态int值。 我是否需要使用这两个属性创建新对象并返回它? GetStatus()方法经常被调用,我不喜欢每次仅用于json格式创建一个特殊对象的想法。 在客户端,我在捕获返回值: 问题答案: 我只想带一个物体。它符合您的需求。如果您有两个返回值,则必须以结构化的方式将它们放在一起。

  • 问题内容: 如何使用Jersey / JAX-RS框架以XML / JSON文档形式返回a并不是很明显。它已经支持s了,但是当涉及到s时,就没有了。即使将嵌入到包装器类中,XML模式中也没有类型。 关于如何在Jersey中将地图编组为XML / JSON文档的任何实用建议? 问题答案: 我知道它的回复很晚,但是我希望有一天它能对某人有所帮助:)我应用的最简单,最快的修复方法是 输出:{“ 1”:“

  • 我有一个ReST API到一个应用程序,该应用程序中的所有控制器都在下找到,这些控制器都返回JSON响应,并带有一个,它处理所有异常以映射到JSON格式的结果。 从Spring 4.0开始,这非常有效现在支持注释匹配。我无法解决的是如何为401-UnAuthated和400-Bad Request响应返回JSON结果。 相反,Spring只是将响应返回给容器(tomcat),该容器将其呈现为超文本