Gremlin を使用して単一のトラバーサルを実行し、DSE Graph 5.0 から一度に多くのものを取得しようとすると、非常に単純なことに非常に不満を感じます..
私の単純化されたケースでは、次のものがあります。
- 特定の uuid を持つ 1 つのエンティティ
- エンティティはゼロ (オプションを参照) またはそれ以上のタイプを持つことができます
- と を返すことができる必要があり
entity
ますtypes
私がこれまでに持っているものは非常に醜いです:(
List list = g.V().hasLabel("Entity").has("uuid","6708ec6d-4518-4159-9005-9e9d642f157e").as("entity")
.optional(outE("IsOfType").as("types"))
.select("entity", "types").toList();
List<Edge> typeEdges = new ArrayList<>();
Vertex entityV = null;
for (Object obj : list) {
entityV = ((Vertex)((LinkedHashMap) obj).get("entity"));
Edge typeEdge = ((Edge)((LinkedHashMap) obj).get("types"));
typeEdges.add(typeEdge);
}
リストの各行には、エンティティといずれかのタイプがあります:/
edges()
DSE 5.0 Fluent API のトラバーサルに基づいてVertex が設定されていないため、私はこれをすべて行っています。したがって、複数のトラバーサル、またはJavaオブジェクトでデシリアライズするのが非常に難しい単一の巨大なひどいトラバーサルで立ち往生しているか、グレムリンクエリを文字列として渡す必要がありますが、Gremlin VertexオブジェクトではなくDSEを返します:(
単純化されていない私のケースでは、上記の複数のエンティティをそれぞれのタイプで返したいのですが、どうすればこれを行うことができますか?
最後に、異なるタイプのオブジェクトを持つサブグラフのカスタム オブジェクト マッピングのための再利用可能なコードにつながる良いアプローチは何ですか?
助けてくれてありがとう!