0
を次のCREATE
ステートメントのパラメータとして指定するにはどうすればよいですか?Neo4jでのCREATEリレーションシップのパラメータの使用
String query = "MATCH (n:User),(m:User) WHERE n.id = {srcId} AND m.id = {dstId} CREATE (n)-[{r:{type}} {dateAdded:{dateAdded}}]->(m)";
この行は変更する必要があります。
public static void TransactionExample() throws Exception
{
Driver driver = GraphDatabase.driver("bolt://localhost", AuthTokens.basic("neo4j", "admin4j"));
Session session = driver.session();
String query = "MATCH (n:User),(m:User) WHERE n.id = {srcId} AND m.id = {dstId} CREATE (n)-[{r:{type}} {dateAdded:{dateAdded}}]->(m)";
try (Transaction tx = session.beginTransaction())
{
tx.run(query,Values.parameters("srcId",srcId,"dstId",dstId,"relType",relType,"dateAdded",dateAdded));
tx.success();
}
}
session.close();
driver.close();
}
org.neo4j.driver.v1.exceptions.ClientException: Invalid input '{': expected whitespace, comment or ']' (line 1, column 98 (offset: 97))
"MATCH (n:User),(m:User) WHERE n.id = {srcId} AND m.id = {dstId} CREATE (n)-[{relType:{relType}} {dateAdded:{dateAdded}}]->(m)"
これは、2つの異なるトランザクションメソッドを記述する必要があることを意味します。 1つはノード用、もう1つは関係用です。それを避けるために、私はこの行に何かをすることはできますか? 'tx.run(query_type、Values.parameters(propertiesArray.get(i)));' – Nick
'propertiesArray'はどこから来ますか? –
JSONがオブジェクトにマップされている場合、オブジェクトのキー/値アイテムの配列を返すメソッドを記述しました。 – Nick