2016-06-14 21 views
0

テキストファイルcypherのneo4jモデルを作成しました。今私はこのデータベースを使用するアプリケーションを作成したいと思います。私はSDN4を使用しています。私の@NodeEntityクラスでは、LongGraphIDを宣言する必要があります。しかし、このIDはSDN4によって生成され、私のデータベースにはこれらのIDはありません。 Cypherを使って作成したものを持つ方法があるので、Javaオブジェクトを既存のノードやデータベース内の関係に正しくマップすることはできますか?Cypherを使用してSDN4のIDを自動生成

答えて

1

フィールドは、常にNeo4jによって割り当てられた内部ノードまたはリレーションシップIDであり、カスタム値に設定することはできません。おそらく、あなた自身のID値をノードのプロパティとして割り当てることを考えているでしょう。 。これは、これらidフィールドに移入されますSDNを経由してエンティティを、データベースがあなたのサイファースクリプト内のステートメントによって割り当てられたプロパティidを持つノードが含まれている場合、今、あなた自身のidフィールド -

@GraphId Long graphId; //required, this is the internal node/rel ID that must never be assigned by your code 
Long id; //your own primary key 

を追加ロードすることによって行うことができますあなたのドメインオブジェクト

独自の主キーを持っていますが、とにかくIDを使用しない場合は、自動的にそれらが任意の手段(SDN /のNeo4jブラウザ/ APIのなど)を使用して作成しているときにノードUUIDのために割り当てられますUUID pluginを使用することができます。

+0

上記の 'graphID'は、SDNまたはneo4j?によって読み込まれます。 Cypherからノードを作成するときに、IDを取得します。このIDは自動的に 'graphID'にマップされますか?その場合は、追加のUUIDフィールドは必要ありません。既存のノードに正しくマッピングされたオブジェクトが必要です。私は、GraphIDがSDNによって生成されなければならないという印象を受けました... – aaaaarrrgghhh

+0

graphIdはNeo4jによって生成されます。 Cypher経由でノードを作成すると、Neo4jはこのIDを割り当てます。 SDN経由でノードをロードすると、そのIDはgraphIdにマップされます – Luanne

関連する問題