14.6.1.6 暗黙的IDでのグラフ・ビルダーの使用
GraphBuilder
では、エッジIDまたは頂点IDを省略できるAUTO_GENERATED
生成方法がサポートされています。
この生成方法では、グラフ・サーバー(PGX)によって、changesetに追加されるエンティティに自動的にIDが割り当てられます。PgxSession
では、IdGenerationStrategy
を指定するためのcreateGraphBuilder(IdGenerationStrategy vertexIdGenerationStrategy, IdGenerationStrategy edgeIdGenerationStrategy)
およびcreateGraphBuilder(IdType idType, IdGenerationStrategy vertexIdGenerationStrategy, IdGenerationStrategy edgeIdGenerationStrategy)
がサポートされています。
次の例では、GraphBuilder
インタフェースを使用して3つの頂点と3つのエッジがあるグラフを作成する方法を示します。
opg4j> var builder = session.createGraphBuilder(IdGenerationStrategy.AUTO_GENERATED, IdGenerationStrategy.AUTO_GENERATED)
opg4j> var v1 = builder.addVertex()
opg4j> var v2 = builder.addVertex()
opg4j> var v3 = builder.addVertex()
opg4j> builder.addEdge(v1, v2)
opg4j> builder.addEdge(v1, v3)
opg4j> builder.addEdge(v3, v2)
opg4j> var graph = builder.build()
import oracle.pgx.api.*;
PgxSession session = Pgx.createSession("example");
GraphBuilder<Integer> builder = session.createGraphBuilder(IdGenerationStrategy.AUTO_GENERATED, IdGenerationStrategy.AUTO_GENERATED);
VertexBuilder<Integer> v1 = builder.addVertex();
VertexBuilder<Integer> v2 = builder.addVertex();
VertexBuilder<Integer> v3 = builder.addVertex();
builder.addEdge(v1, v2);
builder.addEdge(v1, v3);
builder.addEdge(v3, v2);
PgxGraph graph = builder.build();
>>> builder = session.create_graph_builder(vertex_id_generation_strategy='auto_generated', edge_id_generation_strategy='auto_generated')
>>> v1 = builder.add_vertex()
>>> v2 = builder.add_vertex()
>>> v3 = builder.add_vertex()
>>> builder.add_edge(v1, v2)
>>> builder.add_edge(v1, v3)
>>> builder.add_edge(v3, v2)
>>> graph = builder.build()