Neo4j:创建JDBC中不支持的唯一

时间:2017-05-23 14:00:55

标签: java jdbc neo4j

我必须在Neo4j中创建唯一的节点,但是这个查询不正确,因为Neo4j说

  

CREATE UNIQUE

不支持此模式
List<String> users = pUsers.collect();
    for(String u : users){
        if(u.equals("error"))
            continue;
        else{
            String cql = " CREATE UNIQUE (n:User {value:'" + u +"'})";
            st.executeUpdate(cql);
        }

我该如何解决?

1 个答案:

答案 0 :(得分:3)

在使用CREATE UNIQUE之前,您需要MATCH个节点。之后,使用匹配的节点在图形中创建唯一的模式。 CREATE UNIQUE将在图表中进行最少的更改。我相信你需要的是MERGE。 CREATE UNIQUE文档说:

  

MERGE可能是您想要使用的而不是CREATE UNIQUE。注意   但是,MERGE没有给予强有力的保证   关系是独一无二的。

因此,您可以将代码调整为:

List<String> users = pUsers.collect();
for(String u : users){
    if(u.equals("error"))
        continue;
    else{
        String cql = "MERGE (n:User {value:'" + u +"'})";
        st.executeUpdate(cql);
    }
}

查看this answer