0

特定の頂点について、その頂点に出入りするすべてのエッジを削除してから、頂点自体を削除するグレムリン式を作成しようとしています。

グラフデータベースとしてOrientDB1.3-SNAPSHOTを使用しています。

これはこれまでの私の表現です:

//The #8:1 just refers to a vertex
g.v('#8:1').bothE.each{ g.removeEdge(it) }.back(2)

上記でエッジを削除してから2に戻ると、ノードが出力されるはず#8:1です。ただし、何らかの理由で、次のエラーが発生します。

Error: java.lang.NullPointerException

なぜこうなった?

最後に、頂点を削除するにはどうすればよいですか?ドキュメントremoveVertex()は、引数(頂点)が必要であることを示しました。back(2)頂点をからに渡すにはどうすればよいremoveVertex()ですか?

4

1 に答える 1

0

頂点を削除すると、Gremlinは実際にすべてのエッジを削除します。私の場合、私は単に次のことをしなければなりませんでした:

g.removeVertex(g.v('#8:1')); g.stopTransaction(SUCCESS);

これにより、頂点と、頂点に関連付けられているすべてのエッジが削除されます。gremlinが変更をコミットするには、transtransationを停止する必要があります。

さて、私のステートメントのクエリでエラーがスローされた理由についてです。これは、each{}がgrovvy構造であるため、パイプを終了します。パイプを続行するには、sideEffect{}代わりにを使用してください。

于 2012-10-14T08:14:29.027 に答える