我正在尝试运行this GraphGist上的代码来玩Neo4j中的Buendia Family Tree。
当我创建两个节点并尝试用关系连接它们时,如下:
CREATE (JoseArcadioBuendia:Male {name:'Jose Arcadio Buendia',Gender:'Male'})
然后
CREATE (UrsulaIguaran:Female {name:'Ursula Iguaran',Gender:'Female'})
然后
CREATE (JoseArcadioBuendia)-[:HUSBAND]->(UrsulaIguaran)
我明白了:
为什么这段代码不正确?语法看起来很好,似乎为Gist的作者运行。我做错了吗?
答案 0 :(得分:2)
我认为您没有在单个查询中包含所有3个CREATE
子句。
Cypher标识符(如JoseArcadioBuendia
和UrsulaIguaran
)仅在单个查询的生命周期内存在。 DB不会保留这些标识符。因此,如果您的查询只包含CREATE (JoseArcadioBuendia)-[:HUSBAND]->(UrsulaIguaran)
),neo4j将不知道节点已经存在,因此会为您创建2个新节点(以及关系)。
如果您将所有3个子句放在一个查询中,您就会看到预期的结果。否则,您的查询首先必须使用MATCH
将这些标识符与正确的节点相关联(类似于@Bond的回答)。
答案 1 :(得分:0)
第三行不正确。您没有指定任何节点。请尝试以下方法:
<bean id="multiResourceReader"
class=" org.springframework.batch.item.file.MultiResourceItemReader" >