-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 中查看它时,我都会得到双倍的节点和关系。换句话说,我得到了另外两个具有相同名称和关系的节点。

4

1 回答 1

2

只需创建具有与数据库中已存在的其他节点相同属性的新节点,就会创建重复项。人际关系也是如此。如果您要导入数据,则只执行一次,否则您的导入代码必须是“知道”时创建的,因为在检查节点是否存在之前检查索引并在创建之前通过为该节点迭代它们来检查关系是否已经存在。

于 2012-07-08T21:05:26.583 回答