2017-05-23 7 views
0

でサポートされていません作成し、私はのNeo4jにユニークなノードを作成する必要がありますが、のNeo4jはのNeo4j:ユニークなJDBC

を言います。このパターンは、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); 
     } 
のためにサポートされていないため、このクエリは正しくありません。

どうすれば解決できますか?

+0

重複しているかわからない場合:https://stackoverflow.com/questions/20003092/create-unique-with-labels-and-properties – BackSlash

+0

新しい値を設定する必要はなく、私はJDBCを使用しています。その質問を既に確認済み – sirdan

答えて

3

CREATE UNIQUEを使用する前に、MATCHノードが必要です。その後、一致したノードを使用して、グラフ内に一意のパターンを作成します。 CREATE UNIQUEはグラフの変化を最小限に抑えます。私はあなたが必要とするものがMERGEだと信じています。 CREATE UNIQUEドキュメント言う:

MERGEあなたはCREATE UNIQUEの代わりに使用したいものであるかもしれません。注: ただし、MERGEは、 の関係が一意であることを強力に保証しません。

だからあなたはにあなたのコードを適応させることができます。this answerで見てください

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); 
    } 
} 

+0

それはうまくいきました。どうもありがとうございます。 – sirdan

関連する問題