簡體   English   中英

Java與Neo4j Cypher

[英]Java with Neo4j Cypher

我想在list參數中使用id創建特定節點(用戶)與所有其他節點(項目)之間的關系:
我寫了這個查詢:

"FOREACH(it in {h_items} | "
" MATCH (u:User),(i:Item)"
" WHERE u.username = "+username+" AND i.itemId = it"
" CREATE (u)-[h:HAVE_HOBBY]->(i)"
" RETURN r

這應該在具有“用戶名”的用戶與具有itemId = it的項目之間建立關聯。
它應該是我給的項目列表上的迭代器:

ArrayList<String> hobby_items = new ArrayList<String>();
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("h_items", hobby_items);
execute(query,param);  

這給出了錯誤:

在FOREACH中無效使用了MATCH

事實證明,在foreach內部不允許比賽。
編寫此查詢的寫方式是什么?

這可能對您有用:

MATCH (u:User)
WHERE u.username = { username }
UNWIND { h_items } AS it
MATCH (i:Item)
WHERE i.itemId = it
CREATE (u)-[:HAVE_HOBBY]->(i)
RETURN u, i;

您將提供{username}{h_items}作為參數。 您的查詢返回了r (未定義),因此該查詢返回ui

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM