-1
package com;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.kernel.EmbeddedGraphDatabase;
import org.neo4j.graphdb.Transaction;


public class hotspots {
public static enum RelTypes implements RelationshipType
{
    PERSON
}
public static void main(String[] args) {
    GraphDatabaseService graphdb = new EmbeddedGraphDatabase("target/dbnew");
    Transaction tx = graphdb.beginTx();

    try{
        Node n1 = graphdb.createNode();
        Node n2 = graphdb.createNode();

        n1.setProperty("name","Melwin");
        n2.setProperty("name","Louis");

Relationship rel1 =      graphdb.getReferenceNode().createRelationshipTo( n1, RelTypes.PERSON );
Relationship rel2 = graphdb.getReferenceNode().createRelationshipTo( n2,  RelTypes.PERSON );

        tx.success();
    }
    catch (Exception e) {
        tx.failure();
    }
    finally{
        tx.finish();
    }

    graphdb.shutdown();
    System.out.println("Success");
}


}

これは私が作成した小さなデータベースで、Neoclipse で表示します。このコードを実行して Neoclipse で表示するたびに、ノードと関係が 2 倍になります。つまり、同じ名前と関係を持つノードをさらに 2 つ取得します。

4

1 に答える 1

2

データベースに既に存在する他のノードと同じプロパティを持つ新しいノードを作成するだけで、重複が作成されます。同じことが関係にも当てはまります。データをインポートしている場合は、それを一度だけ実行するか、ノードが存在するかどうかを確認する前にインデックスを確認し、作成する前に、インポートコードを作成する必要があります。そのノードに対してそれらを反復することにより、関係が既に存在するかどうかを確認します。

于 2012-07-08T21:05:26.583 に答える