当前位置: 首页 > 知识库问答 >
问题:

通过 gremlin 服务器暴露的泰坦图的 ORM

轩辕经国
2023-03-14

我有一个运行以下配置的titan服务器

    < li >使用Cassandra作为存储后端的Titan Graph with > < li >带有WebSocketChannelizer的Gremlin服务器 < li>Titan版本:titan-1.0.0-hadoop1

我有一个带有Gremlin驱动程序3.0.1孵化的Java应用程序,它可以打开一个客户端连接到远程Gremlin服务器。

我能够提交gremlin查询来创建vertex,并使用类似g.V()的查询返回结果。

CompletableFuture<ResultSet> submitAsync = client.submitAsync("g.V()");
List<Result> list = submitAsync.get().all().get();

现在我想将这些列表转换为列表

是否有任何对象映射器可用于 gremlin 驱动程序/gremlin 服务器?


共有2个答案

罗韬
2023-03-14
匿名用户

是的,有。请查看Github上的豌豆荚库。可以使用它创建自己的类来映射所有顶点和边。豌豆荚使用代码生成来实现框架顶点和边类。

举个例子,

@Vertex
public abstract class Person {
  public abstract String getName();
  public abstract void setName(String name);

  public abstract List<Knows> getKnows();
  public abstract Knows getKnows(Person person);
  public abstract Knows addKnows(Person person);
  public abstract Knows removeKnows(Person person);
}

@Edge
public abstract class Knows {
  public abstract void setYears(int years);
  public abstract int getYears();
}

然后,你可以这样使用它:

public void testClassic() {
    Graph g = TinkerFactory.createClassic();
    FramedGraph graph = new FramedGraph(g, Person.class.getPackage());

    Person marko = graph.v(1, Person.class);
    assertEquals("marko", marko.getName());

    Person vadas = graph.v(2, Person.class);
    Person josh = graph.v(4, Person.class);

    List<Person> result = graph.V(Person.class).has("name", "josh").toList();
    assertThat(result, contains(josh));

    assertThat(marko.getKnows(), containsInAnyOrder(vadas, josh));
}

好好享受。

顺便说一下,在这里看看其他有用的Tinkerpop真棒非官方图书馆。

声明:我是< code>Peapod的撰稿人,也是< code>awesome-tinkerpop库的所有者。

茹航
2023-03-14

我知道没有这样的映射器。关注这个问题:

https://issues.apache.org/jira/browse/TINKERPOP3-575

完成后,现有ORM将在Gremlin Server上运行。现在,您必须自己将Vertex转换为“person”。不过,通常情况下,模式不一定要返回原始顶点,而是将这些顶点的某些转换返回到一个<code>Map</code>构造,您可以在客户端上更通用地使用该构造。

 类似资料:
  • 本文向大家介绍说说 Dubbo 服务暴露的过程。相关面试题,主要包含被问及说说 Dubbo 服务暴露的过程。时的应答技巧和注意事项,需要的朋友参考一下 Dubbo 会在 Spring 实例化完 bean 之后,在刷新容器最后一步发布 ContextRefreshEvent 事件的时候,通知实现了 ApplicationListener 的 ServiceBean 类进行回调 onApplicati

  • 主要内容:1. 概述,2.本地暴露,3 远程暴露1. 概述 Dubbo 服务暴露有两种方式 本地暴露,JVM 本地调用。配置如下: 远程暴露,网络远程通信。配置如下: 在不配置 scope 的情况下,默认两种方式都暴露 2.本地暴露 2.1 doExportUrls 本地暴露服务的顺序图如下: ServiceConfig#export() 方法中,会在配置初始化完成后,调用顺序图的起点 #doExportUrls() 方法,开始暴露服务。代码如

  • 主要内容:1.概述,2.doExportUrls,3. Protocol1.概述 Dubbo 服务暴露有两种方式 本地暴露,JVM 本地调用。配置如下: <dubbo:service scope=“local” /> <dubbo:service scope=“remote” /> 在不配置 scope 的情况下,默认两种方式都暴露。 2.doExportUrls 本地暴露服务的顺序图如下: 我们看到 ServiceConfig#export() 方法中,会在配置初始

  • 24.2 使用RMI暴露服务 使用Spring的RMI支持,你可以通过RMI基础架构透明地暴露你的服务。完成Spring的RMI设置后,你基本上具有类似于远程EJB配 置,除了没有对安全上下文传递和远程事务传递的标准支持。当使用RMI调用器时,Spring对这些额外的调用上下文提供了钩子,你可以在此插入安全框架 或者自定义的安全凭证。 24.2.1 使用RmiServiceExporter导出服务

  • 18.2. 使用RMI暴露服务 使用Spring的RMI支持,你可以通过RMI基础设施透明的暴露你的服务。设置好Spring的RMI支持后,你会看到一个和远程EJB接口类似的配置,只是没有对安全上下文传递和远程事务传递的标准支持。当使用RMI调用器时,Spring对这些额外的调用上下文提供了钩子,你可以在此插入安全框架或者定制的安全证书。 18.2.1. 使用 RmiServiceExporter

  • 我正在使用go-swagger生成API服务器。我注意到json是由swagger生成的。yml保存在restapi/embedded\u spec.go中。 公开JSON规范以便我的ReactJS客户端可以访问它的最佳方式是什么? 到目前为止,我不得不使用招摇发球招摇。yml—端口=50000,并将JavaScript客户端指向本地主机:50000/swagger。json。我正在寻找一种通过A

  • 24.4 使用HTTP调用器暴露服务 与使用自身序列化机制的轻量级协议Hessian相反,Spring HTTP调用器使用标准Java序列化机制通过HTTP暴露业务。如果你的参数或返回值是复杂类型,并且不能通过Hessian的序列化机制进行序列化,HTTP调用器就很有优势(请参阅下一节,以便在选择远程处理技术时进行更多考虑)。 在底层,Spring使用JDK提供的标准工具或Commons的Http

  • 18.4. 使用HTTP调用器暴露服务 和使用自身序列化机制的轻量级协议Burlap和Hessian相反,Spring HTTP调用器使用标准Java序列化机制来通过HTTP暴露业务。如果你的参数或返回值是复杂类型,并且不能通过Hessian和Burlap的序列化机制进行序列化,HTTP调用器就很有优势(参阅下一节,选择远程技术时的考虑)。 实际上,Spring可以使用J2SE提供的标准功能或Co