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()