0

我刚刚用 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);
}
4

1 回答 1

0

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

于 2013-08-22T08:01:08.993 回答