无法使用UniqueNodeFactory重新创建刚刚删除的节点

时间:2013-08-10 15:04:09

标签: neo4j node-neo4j

我刚创建了一个包含UniqueNodeFactory的节点以及他与UniqueRelationshipFactory的关系。我删除了NeoEclipse的节点,然后我尝试重新创建相同的节点,我没有得到任何异常,节点也没有重新创建。谁知道这种情况正在发生?

public Node getOrCreateNodeWithUniqueFactory(final Index<Node> nodeIndex, final String indexableKey,final String indexableValue) {
    UniqueFactory<Node> factory = new UniqueFactory.UniqueNodeFactory( Global.graphDB.getGraphDbService(), nodeIndex.getName())
    {
        @Override
        protected void initialize(Node created, Map<String, Object> properties) {
            created.setProperty(indexableKey, properties.get(indexableKey));
        }
    };

    return factory.getOrCreate( indexableKey, indexableValue );
}

    public Relationship getOrCreateRelationshipTypeWithUniqueFactory(Index<Relationship> index, String indexableKey, final String indexableValue, 
                    final RelationshipType type, final Node start, final Node end) {

    UniqueFactory<Relationship> factory = new UniqueFactory.UniqueRelationshipFactory(index) {
        @Override
        protected Relationship create(Map<String, Object> properties) {
            Relationship r =  start.createRelationshipTo(end, type);
            return r;
        }
    };

    return factory.getOrCreate(indexableKey, indexableValue);
}

1 个答案:

答案 0 :(得分:0)

我无法重现您的问题。我得到的是第二次创建了一个新节点。但它有助于完整的源代码。并且还尝试使用UniqueNodeFactory上的方法“getOrCreateWithOutcome”来查看它是否已创建。